Listview到SimpleAdapter无法正常工作

时间:2014-06-05 08:18:50

标签: android listview simpleadapter

我在一个Activity中有代码,如下所示,效果很好。

HashMap<String, String> map = new HashMap<String, String>();
map.put(TAG_ID, catid);
map.put(TAG_NAME, catname);                 
oslist.add(map);
list=(ListView)findViewById(R.id.listView1);                                
ListAdapter adapter = new SimpleAdapter(MainActivity.this, oslist,
R.layout.category_list,
new String[] { TAG_ID,TAG_NAME}, new int[] {
R.id.catid,R.id.catname});

虽然另一个Activity中的类似代码无效......

ListAdapter adapter = new SimpleAdapter(newsList.this, oslist,
R.layout.category_list,
new String[] { TAG_ID,TAG_NAME}, new int[] {
R.id.catid,R.id.catname});
list.setAdapter(adapter);

它给出了如下错误:

The constructor SimpleAdapter(newsList, ArrayList<HashMap<String,String>>, int, String[], int[]) is undefined

2 个答案:

答案 0 :(得分:0)

如果你有newsList.this,你应该传递一个上下文,可能是Activity2.this,假设你的第二个Activity被称为Activity2。

答案 1 :(得分:0)

你必须在适配器的构造函数中传递上下文,如:

//声明全局

Contect _ctx = youractivityname.this

然后将其传递给您的适配器,如:

ListAdapter adapter = new SimpleAdapter(_ctx, oslist,R.layout.category_list,new String[] {    TAG_ID,TAG_NAME}, new int[] {R.id.catid,R.id.catname});