首页 > 解决方案 > 获取 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();

}

标签: android

解决方案


    @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

推荐阅读