Android 为每个联系人获得相同的显示

Android 为每个联系人获得相同的显示,android,contacts,Android,Contacts,我正在使用虚拟数据创建联系人管理器,目前我有一个公共字段,其中包含联系人的ArrayList,即公共静态ArrayList contactList=new ArrayList() 单击特定联系人(从查看联系人屏幕)后,我将进入编辑联系人屏幕,其中显示该特定联系人的所有字段。i、 e.姓名、手机、地址、电子邮件等。单击列表中的第一个联系人时,其详细信息会正确显示。但是,当我返回查看联系人屏幕时,它仍然显示第一个联系人的字段 在my MainActivity.java类中: list

我正在使用虚拟数据创建联系人管理器,目前我有一个公共字段,其中包含联系人的ArrayList,即公共静态ArrayList contactList=new ArrayList()

单击特定联系人(从查看联系人屏幕)后,我将进入编辑联系人屏幕,其中显示该特定联系人的所有字段。i、 e.姓名、手机、地址、电子邮件等。单击列表中的第一个联系人时,其详细信息会正确显示。但是,当我返回查看联系人屏幕时,它仍然显示第一个联系人的字段

在my MainActivity.java类中:

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
        @Override
            public void onItemClick(AdapterView<?> parentView, View clickedView, int clickedViewPosition, long id){
                TextView firstName = (TextView) findViewById(R.id.firstName);



                String fName = firstName.getText().toString();  


                Intent theIntent = new Intent(getApplication(), EditContact.class);
                theIntent.putExtra("firstName", fName);
                startActivity(theIntent);

            }

        });

有人知道为什么在putExtra()中传递的名字在我单击另一个联系人时不会更改吗?

请显示联系人详细信息活动的“onCreate”的全部源代码您是否正在更改textview R.id.firstName中的字符串我想当您单击联系人时,这会自动更改。因此,如果你点击第一个,它应该得到第一个联系人的名字id。然后,当您单击第二个联系人时,它将获取第二个联系人的id。这是正确的吗?我现在已经显示了整个onCreate方法,但是在onItemClickListener中,您没有根据单击的位置从适配器或数据集获取字符串。
@Override
public void onCreate(Bundle savedInstanceState) {

    // Get saved data if there is any

    super.onCreate(savedInstanceState);

    // Designate that add_new_contact.xml is the interface used

    setContentView(R.layout.edit_contact);

    // Initialize the EditText objects

    firstName = (EditText) findViewById(R.id.firstName);
    lastName = (EditText) findViewById(R.id.lastName);
    dateOfBirth = (EditText) findViewById(R.id.dateOfBirth);
    mobileNumber = (EditText) findViewById(R.id.mobileNumber);
    homeNumber = (EditText) findViewById(R.id.homeNumber);
    workNumber = (EditText) findViewById(R.id.workNumber);
    homeEmail = (EditText) findViewById(R.id.emailAddressHome);
    workEmail = (EditText) findViewById(R.id.emailAddressWork);
    homeAddress = (EditText) findViewById(R.id.homeAddress);
    workAddress = (EditText) findViewById(R.id.workAddress);

    Intent theIntent = getIntent();

    String thefirstName = theIntent.getStringExtra("firstName");

    for (Contact con: MainActivity.contactList){

        if (con.getFirstName().equals(thefirstName)){
            firstName.setText(con.getFirstName());
            lastName.setText(con.getLastName());
            dateOfBirth.setText(con.getDateOfBirth());
            mobileNumber.setText(con.getMobileNumber());
            homeNumber.setText(con.getHomeNumber());
            workNumber.setText(con.getWorkNumber());
            homeEmail.setText(con.getHomeEmail());
            workEmail.setText(con.getWorkEmail());
            homeAddress.setText(con.getHomeAddress());
            workAddress.setText(con.getWorkAddress());

        }

    }


}