2012-05-22 21 views
2

我正在制作一个应用程序,从一个具有2个视图的android应用程序从webservice接收数据。在第二个意图刷新阵列列表

第一次询问登录名和密码。那么活动请求到web服务,如果有DATAS,他创建的意图,显示在列表视图DATAS:

主要

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)); 
} 

的结果是,我有物品是addes进入当前列表(例如,我有2个项目,如果我刷新4次,我将有10个项目在视图和我魔杖只有2最后)

如果你有一个想法:D

回答

0

好吧,我只是用

accountlist.clear(); 

methid只是

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

后明确表示,将重新用于启动意图列表!

0

你不能直接在活动之间传递一个ArrayList,你必须通过序列化去找对象。阅读:How do I pass an object from one activity to another on Android?

+1

ArrayList实现了Serializable,所以它在活动之间传递它是完全有效的。 –

+0

@ julien:这不是问题,它是完美的工作,但在刷新方法(第二类/意图),我想删除和清除列表中的项目,然后添加新闻(最终不只是添加新的) – clement

+0

@Prabhu:感谢读了我:-) – clement