0

我是 Andriod 和编程的新手。我正在尝试制作一个待办事项列表应用程序,它将在主布局中包含一个 listView、Button(add)。当我单击添加时,我希望它转到另一个包含 editText 和添加按钮的活动。当我单击添加按钮时,我想更新我的主要活动中的列表。现在我能够从第二个活动中获取信息,但是当我尝试将它添加到我的列表中时,它会覆盖它。

一旦我的主要活动再次出现,我如何更新我的列表。

这是我到目前为止所拥有的:

MainActivity 类:

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    add = (Button) findViewById(R.id.bAdd);
    list = (ListView) findViewById(R.id.lvList);
    addItems(); // i think this is the error but i dont know how to fix it.
    alList = new ArrayList<String>();
    aaList = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, alList);
    list.setAdapter(aaList);

}
public void clickAdd(View v) { //when clicking the add button(add)
    Intent intent = new Intent(MainActivity.this, AddItem.class);
    startActivity(intent);
}

private void addItems(){
    String s = getIntent().getStringExtra("item");
    aaList.add(s);
    aaList.notifyDataSetChanged();
}

添加项目类:

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.add_layout);
    et = (EditText) findViewById(R.id.etAdd);
    bt = (Button) findViewById(R.id.badd);

}
public void add(View v){ //when clicking the add button(bt) 
    edit = et.getText().toString(); 
    Intent intent = new Intent(AddItem.this, MainActivity.class);
    intent.putExtra("item", edit);
    startActivity(intent);
}

你能告诉我哪里以及为什么我出错了吗?谢谢你

4

1 回答 1

4

首先,你应该使用startACtivityForResult

Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 1);

然后在你的第二个活动中

 Intent returnIntent = new Intent();
 returnIntent.putExtra("result",result);
 setResult(RESULT_OK,returnIntent);     
 finish();

回到你的拳头:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

  if (requestCode == 1) {

     if(resultCode == RESULT_OK){      
         String result=data.getStringExtra("result");          
     }
     if (resultCode == RESULT_CANCELED) {    
         //Write your code if there's no result
     }
  }
}//onActivityResult

然后,您的 addItem 应该可以解决问题:

private void addItems(String s){
    aaList.add(s);
    aaList.notifyDataSetChanged();
}
于 2013-08-11T10:33:32.433 回答