2

我正在制作一个应用程序,该应用程序使用具有 2 个视图的 android 应用程序从 web 服务接收数据。

首先询问登录名和密码。然后是对 web 服务的活动请求,如果有数据,他创建一个在列表视图中显示数据的意图:

主要的

private ArrayList accountlist = new ArrayList();
...
accountlist.add(...)
...
Intent intent = new Intent(Main.this, Second.class);
intent.putExtra("accountlist", accountlist);
intent.putExtra("login", loginEditText.getText().toString());
intent.putExtra("pass", passwordEditText.getText().toString());
startActivity(intent);

第二

private ArrayList accountlist;
...
public void onCreate(Bundle savedInstanceState) {
 ...
 setListAdapter(new ArrayAdapter<String>(this, R.layout.results,accountlist));
 ...
}
private void refresh() {
 ...
 accountlist.add(...)
 setListAdapter(new ArrayAdapter<String>(this, R.layout.results,accountlist));
}

结果是我有添加到当前列表中的项目(例如,我有 2 个项目,如果我刷新 4 次,我将在视图中有 10 个项目,我只希望最后 2 个)

如果你有一个想法:D

4

2 回答 2

0

好的,我刚用过

accountlist.clear();

紧随其后

Intent intent = new Intent(Main.this, Second.class);
intent.putExtra("accountlist", accountlist);
intent.putExtra("login", loginEditText.getText().toString());
intent.putExtra("pass", passwordEditText.getText().toString());
startActivity(intent);

清除将重新用于启动意图的列表!

于 2012-05-22T20:46:54.927 回答
0

您不能直接在活动之间传递 ArrayList,您必须通过序列化来获取某种对象。阅读本文:如何在 Android 上将对象从一个活动传递到另一个活动?

于 2012-05-22T20:27:32.690 回答