0

私はダミーデータを使用して連絡先マネージャーを作成しています。現在、連絡先のArrayListを含むパブリックフィールドがあります。つまり、 public static ArrayList contactList = new ArrayList(); です。

特定の連絡先をクリックすると (連絡先の表示画面から)、その特定の連絡先のすべてのフィールドが表示される [連絡先の編集] 画面に移動します。つまり、名前、携帯電話、住所、電子メールなどです。リストの最初の連絡先をクリックすると、その詳細が正しく表示されます。ただし、連絡先の表示画面に戻ると、まだ最初の連絡先のフィールドが表示されます。

私の 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);

            }

        });

クリックした連絡先の firstName を putExtra() に渡すと、EditContact クラスに移動し、ArrayList を実行して同じ firstName の連絡先を取得し、そのすべてのフィールドを取得します (それぞれのテキスト ボックスに格納するため)。

@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());

        }

    }


}

別の連絡先をクリックしても putExtra() に渡される firstName が変更されない理由を知っている人はいますか?

4

0 に答える 0