我想打开一个活动取决于用户在ListView上选择的值。如果用户选择具有type1值的列表项,则应该打开acitvity1(activity1.class),如果列表项属于type2,则应该打开acitvity2(activity2.class)。我仍然想获得id值。 有人可以帮我在列表中获取多个值。 (不仅仅是id值)或解决这个问题。
以下是我的代码;
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
//TODO:need to assign the value here
String mEdit = .......;
if (mEdit.equals("type1")){
Intent i = new Intent(this, activity1.class);
i.putExtra(DbAdapter.KEY_ROWID, id );
startActivityForResult(i, ACTIVITY_EDIT);
}else if (mEdit.equals("type2")){
Intent i = new Intent(this, activity2.class);
i.putExtra(KEY_ROWIDA, id );
startActivityForResult(i, ACTIVITY_EDIT);
};
}
提前致谢
答案 0 :(得分:0)
您可以在ListActivity上调用getListView()。getItemAtPosition(int)并为其指定列表项的索引。然后,您可以将其强制转换为支持对象,并对该对象执行任何操作。我自己的一个应用程序示例:
ForumDescriptor selected = (ForumDescriptor) getListView().getItemAtPosition(position);
ForumDescriptor有一些关于个人子论坛的信息(它是一个网站的论坛查看器)。每个都是我列表中的一个项目。
答案 1 :(得分:0)
这可能适用于这种情况,
...
//TODO:need to assign the value here
TextView tv = (TextView)v.findViewById(R.id.itemname);
String category = tv.getText().toString();
...
'R.id.itemname'是layout xml中定义的列表项的id属性。
答案 2 :(得分:0)
这是工作代码;
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
//TODO:need to assign the value here
Cursor mycursor = (Cursor) getListView().getItemAtPosition(position);
//1 is the field position
String mEdit = mycursor.getString(1);
if (mEdit.equals("type1")){
Intent i = new Intent(this, activity1.class);
i.putExtra(DbAdapter.KEY_ROWID, id );
startActivityForResult(i, ACTIVITY_EDIT);
}else if (mEdit.equals("type2")){
Intent i = new Intent(this, activity2.class);
i.putExtra(KEY_ROWIDA, id );
startActivityForResult(i, ACTIVITY_EDIT);
};
}