我在一个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
答案 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});