【发布时间】:2015-01-24 18:21:42
【问题描述】:
我在更新我的 ListView 时遇到了一些问题。
所以我使用了 notifyDataSetChanged();但它说它无法解决。
这是代码中不起作用的部分:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_activity2);
background2= (RelativeLayout) findViewById(R.id.background);
final ListView theListView = (ListView) findViewById(R.id.listView);
Intent calledActivity=getIntent();
final List pe=calledActivity.getExtras().getStringArrayList("Caller1");
String []s =new String[pe.size()];
for(int i=0;i<pe.size();i++)
{
s[i]=(String)pe.get(i);
}
final ListAdapter theAdapter= new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, pe);
theListView.setAdapter(theAdapter);
final int cnt=1;
theListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String s1 = String.valueOf(parent.getItemAtPosition(position));
pe.remove(s1);
runOnUiThread(new Runnable() {
public void run() {
theAdapter.notifyDataSetChanged();
}
});
}
});
}
【问题讨论】:
-
为什么
theAdapter.notifyDataSetChanged();中有Runnable? -
我把它看作是解决另一个人的问题
-
您是否尝试过从
Runnable中删除theAdapter.notifyDataSetChanged();并将其直接放在pe.remove(s1);之后?
标签: android listview notifydatasetchanged