android - 获取 ListViews 的值并在编辑表单上显示
问题描述
我试图获取存储在数组中的 ListView 值,并在单击名称时显示在编辑表单上,例如,如果 James 单击方法 onItemClick 应该在编辑表单上显示 ListView 值。onso 我可以编辑该值,但我不知道该怎么做。单击列表中的项目时,我希望能够在编辑表单上显示值。
<!--edit form-->
<EditText
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/email"
android:layout_below="@+id/page_title"
android:layout_marginTop="20dp"
android:ems="10"
android:hint="First Name"
android:inputType="textPersonName" />
<EditText
android:id="@+id/email"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/email_icon"
android:layout_marginLeft="35dp"
android:layout_marginTop="20dp"
android:layout_toRightOf="@+id/email_icon"
android:ems="10"
android:hint="Email address"
android:inputType="textEmailAddress">
<requestFocus />
</EditText>
<EditText
android:id="@+id/mobile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/email"
android:layout_below="@+id/email"
android:layout_marginTop="20dp"
android:ems="10"
android:hint="Mobile Phone"
android:inputType="phone" />
contactListView = (ListView) findViewById(R.id.contactsListView);
adapter = new ArrayAdapter<Contact>(this,android.R.layout.simple_list_item_1, contacts);
contactListView.setAdapter(adapter);
contactListView.setOnItemClickListener(this);
// Add some Contacts
contacts.add(new Contact("Jame ham","james@bloggs.com", "02125547"));
contacts.add(new Contact("Ken ben","ken@doe.com", "032547358""));
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Contact contact = (Contact) parent.getAdapter().getItem(position);
Toast.makeText(parent.getContext(), "Clicked " + contact,Toast.LENGTH_SHORT).show();
}
解决方案
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Contact contact = (Contact) parent.getAdapter().getItem(position);
String Name= contact .getName();
String Email= contact .getEmail();
String Number= contact .getNumber();
Intent editActivity = new Intent(getApplicationContext(), EditActivity.class);
editActivity.putExtra("Name", Name);
editActivity.putExtra("Email", Email);
editActivity.putExtra("Number", Number);
startActivity(editActivity );
}
然后在 EditActivity 上捕获它并将其设置为您的 EditText。
Intent intent = getIntent();
String Name = intent.getStringExtra("Name");
String Email = intent.getStringExtra("Email");
String Number = intent.getStringExtra("Number");
或者您可以通过自定义对话框来完成
final Dialog dialog = new Dialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.YOU_LAYOUT_HERE);
EditText ETname = dialog.findViewById(R.id.etname);
EditText ETemail = dialog.findViewById(R.id.etemail);
EditText ETnumber = dialog.findViewById(R.id.etnumber);
ETname.setText(Name);
ETemail.setText(Email);
ETnumber.setText(Number);
//Add a button for your desire operation
推荐阅读
- javascript - 在内联 JavaScript 加载后加载一个 JavaScript 外部文件
- javascript - Leaflet TimeDimension 显示当地时间
- c - 编程珍珠:文件中所有单词的频率
- mysql - mysql替换和更改
- r - 阻止文本标签在 ggplot2 中重叠
- flutter - 有没有办法在颤动中对列表视图进行排序?
- javascript - 将 CSS.supports() 与媒体查询一起使用?
- python - 为什么我的模拟类的实例共享属性?
- python - 在 Pandas 中对匹配多个条件的数据框进行切片
- visual-c++ - 与 irrklang::ISound 一起使用时不会播放 irrklang 声音