Java 意图方法(onActivityResult)清除以前的listview存储数据

Java 意图方法(onActivityResult)清除以前的listview存储数据,java,android,listview,android-intent,Java,Android,Listview,Android Intent,我正在尝试在CreateGroup.java中创建一组电话联系人。因此,出于这个目的,我使用Intent进入一个名为ContactsView.java的新活动。这里有一个所有联系人的列表。当我单击该列表中的联系人时,它会获取该联系人项目的名称,并将其返回到名为CreateGroup.java的上一个活动。但当我尝试添加更多联系人时,它会替换列表视图中先前添加的项目。我无法在列表中添加多个联系人 请有人帮帮我 CreateGroup.java public class CreateG

我正在尝试在
CreateGroup.java
中创建一组电话联系人。因此,出于这个目的,我使用
Intent
进入一个名为
ContactsView.java
的新活动。这里有一个所有联系人的列表。当我单击该列表中的联系人时,它会获取该联系人项目的名称,并将其返回到名为
CreateGroup.java
的上一个活动。但当我尝试添加更多联系人时,它会替换
列表视图中先前添加的项目。我无法在列表中添加多个联系人

请有人帮帮我

CreateGroup.java 


    public class CreateGroup extends ActionBarActivity {
    TextView textView;
    ListView show;
    ArrayList<String> addArray=new ArrayList<String >();

public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.create_group);

 ImageButton next = (ImageButton)findViewById(R.id.imgButtonAddContacts);
            textView=(TextView)findViewById(R.id.textViewtst);
            show= (ListView) findViewById(R.id.listView2);
            next.setOnClickListener(new View.OnClickListener() {

public void onClick(View view) {
        Intent myIntent = new Intent(view.getContext(), ContactsView.class);
                    startActivityForResult(myIntent, 0);
                }

            });
        }


 @Override
 public void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);

       switch(requestCode) {
                case (0) : {
                    if (resultCode == Activity.RESULT_OK) {
                        String newText = data.getStringExtra("CName");
                        addArray.add(newText);
                        ArrayAdapter<String>adapter=new ArrayAdapter<String> (CreateGroup.this,android.R.layout.simple_list_item_1,addArray);
                        show.setAdapter(adapter);
                    }
                   break;
                }
            }
       }
    }

您不应该调用super.onActivityResult(请求代码、结果代码、数据)
作为第一件事,但只有当您面对的
requestCode
不是由您的代码处理的时候。换句话说,这应该添加到
default
部分的
switch
块中。另一件事是,您不应该每次都设置新的适配器。因此:

addArray.add(newText);
ArrayAdapter<String>adapter=new ArrayAdapter<String> (CreateGroup.this,android.R.layout.simple_list_item_1,addArray);
show.setAdapter(adapter);

它只需将数据添加到当前数组中,然后通知适配器(当然,您需要在
onCreate()
中另外创建适配器)数据集中的更改。

欢迎使用stackoverflow。请删除注释行并改进代码格式,以便获得更清晰的代码和更好的性能question@Robert我已经重新格式化了我的代码。请检查一下,我已经更新了代码。但问题尚未解决…仅显示最近添加的联系人姓名。请帮忙!
 @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch(requestCode) {
           case (0) : {
                if (resultCode == Activity.RESULT_OK) {
                    String newText = data.getStringExtra("CName");
                    textView.setText(newText);
                    addArray.add(newText);
                    adapter.notifyDataSetChanged();
                    show.setAdapter(adapter);
                }
                break;
            }
            default:
                super.onActivityResult(requestCode, resultCode, data);
        }
   }
addArray.add(newText);
ArrayAdapter<String>adapter=new ArrayAdapter<String> (CreateGroup.this,android.R.layout.simple_list_item_1,addArray);
show.setAdapter(adapter);
addArray.add(newText);
adapter.notifyDatasetChanged();