如何将listview中所选项目的值或位置传递给新活动,该活动将使用该值从listview中的数据库中检索数据(在新活动中)
我有代码可以工作,但总是为已传递的位置传递空值。
第一项活动的代码:
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent,View view,
int position, long id) {
// ListView Clicked item index
int itemPosition = position;
// ListView Clicked item value
String itemValue = (String) listView.getItemAtPosition(position);
// Show Alert HERE THE VALUE IS CORRECT-----
// Toast.makeText(getApplicationContext(),
// "Position :"+itemPosition+" ListItem : " +itemValue , Toast.LENGTH_LONG)
// .show();
Intent myIntent = new Intent(view.getContext(), ShowWhereToGo1.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
myIntent.putExtra("id", itemPosition);
startActivityForResult(myIntent, 0);
}
});
第二项活动:
Bundle extras = getIntent().getExtras();
String temp = extras.getString("id");
Toast.makeText(getApplicationContext(),
"Position :"+temp , Toast.LENGTH_LONG)
.show();
}
我也尝试了第二个活动代码,但仍传递空值:
Intent in = this.getIntent();
String name = in.getStringExtra("id");
Toast.makeText(getApplicationContext(),
"Position :"+name , Toast.LENGTH_LONG)
.show();
是否有其他方法可以在活动之间传递和检索值?
答案 0 :(得分:3)
使用
Bundle extras = getIntent().getExtras();
if (extras != null)
String temp = extras.getInt("id");
而不是extras.getString("id")
,因为您从ListView传递Integer,请单击