我是Andriod和编程的新手。我正在尝试制作一个待办事项列表应用程序,它将在主布局中包含listView,Button(添加)。当我点击添加我希望它转到另一个活动,其中包含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();
}
AddItem类:
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);
}
你能告诉我出错的地方和原因吗?谢谢
答案 0 :(得分: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();
}