我有一个列表视图。当任何人单击列表时,它会将列表内容显示为
{first_name=abc, last_name=xyz, id=1, address=kolkata}
但我希望那些从那个字符串中单独获取这些值的人。
我的 onListItemClick 列表器
protected void onListItemClick(ListView l, View v, int position, long id)
{
super.onListItemClick(l, v, position, id);
Object o = this.getListAdapter().getItem(position);
String return_data = o.toString();
Toast.makeText(this, ""+return_data, Toast.LENGTH_LONG).show();
}
添加了包括列表适配器在内的总类
public class showUserInfoListActivity extends ListActivity {
ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>();
static final String KEY_ID = "id";
static final String KEY_FIRST_NAME = "first_name";
static final String KEY_LAST_NAME = "last_name";
static final String KEY_ADDRESS = "address";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.add_user_info_list);
//---get all Records---
DataBaseAdapter db = new DataBaseAdapter(this);
db.open();
Cursor c = db.getAllRecords();
if (c.moveToFirst())
{
do
{
HashMap<String, String> map = new HashMap<String, String>();
// adding each child node to HashMap key => value
map.put(KEY_ID, c.getString(0));
map.put(KEY_FIRST_NAME, c.getString(1));
map.put(KEY_LAST_NAME, " "+c.getString(2));
map.put(KEY_ADDRESS, c.getString(3));
// adding HashList to ArrayList
menuItems.add(map);
} while (c.moveToNext());
}
db.close();
// Adding menuItems to ListView
// All filed data are not shown in the list KEY_ID is hidden
ListAdapter adapter = new SimpleAdapter(this, menuItems,R.layout.user_info_list_item,
new String[] { KEY_FIRST_NAME, KEY_LAST_NAME, KEY_ADDRESS, KEY_ID },
new int[] {R.id.first_name , R.id.last_name, R.id.address});
setListAdapter(adapter);
}
//On select from the list show data
protected void onListItemClick(ListView l, View v, int position, long id)
{
super.onListItemClick(l, v, position, id);
Object o = this.getListAdapter().getItem(position);
//String return_data = o.toString();
MyClass return_data = (MyClass)o;
Toast.makeText(this, ""+return_data, Toast.LENGTH_LONG).show();
}
class MyClass{
}
}