Android 不能从listview中随机选择数据
我有两项活动 第一个活动是将JSON数据从服务器解析到Android 不能从listview中随机选择数据,android,listview,hashmap,put,Android,Listview,Hashmap,Put,我有两项活动 第一个活动是将JSON数据从服务器解析到列表视图的活动,第二个活动是显示列表视图中选定值的数据的活动 下面是我第一次活动的onClick方法: /** * Updating parsed JSON data into ListView * */ ListAdapter adapter = new SimpleAdapter(this, userList, R.layout.listitemviewall,
列表视图的活动,第二个活动是显示列表视图中选定值的数据的活动
下面是我第一次活动的onClick
方法:
/**
* Updating parsed JSON data into ListView
* */
ListAdapter adapter = new SimpleAdapter(this, userList,
R.layout.listitemviewall,
new String[] { "namaresto", "alamatresto"},
new int[] {R.id.name, R.id.address});
setListAdapter(adapter);
/**
* select resto
*/
final ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
/**
* move to the next activity
* */
String namanya = ((TextView) findViewById(R.id.name)).getText().toString();
String alamatnya = ((TextView) findViewById(R.id.address)).getText().toString();
//Starting a new Intent
Intent nextScreen = new Intent(getApplicationContext(), InfoTab.class);
//Sending data to another Activity
nextScreen.putExtra("name", namanya);
nextScreen.putExtra("address", alamatnya);
// starting new activity
startActivity(nextScreen);
}
});
TextView txtname = (TextView) findViewById(R.id.textTEST1);
TextView txtaddress = (TextView) findViewById(R.id.TextTEST2);
//displaying data from previous activity
Intent i = getIntent();
// Receiving the Data
String name = i.getStringExtra("name");
String address = i.getStringExtra("address");
// Displaying Received data
txtname.setText(name);
txtaddress.setText(address);
结果,第二个活动始终显示第一条记录!即使我单击了列表视图中的第二条或其他记录
如何让代码显示在列表视图中选择的正确记录?
尝试更改以下行:
String namanya = ((TextView) findViewById(R.id.name)).getText().toString();
String alamatnya = ((TextView) findViewById(R.id.address)).getText().toString();
致:
告诉我这是否适用于您…您没有在onItemClick中选择正确的数据。您可以通过执行parent.getItemAtPosition(position)从表示该行的列表中检索对象;在麦克里克的内部。这将为您提供与该行对应的适配器列表中的对象
String namanya = ((TextView) view.findViewById(R.id.name)).getText().toString();
String alamatnya = ((TextView) view.findViewById(R.id.address)).getText().toString();