我有一个ListView,对于每个结果,显示名称,电话号码,网站和地址,方式如下:
名称
地址
电话号码
网站
目前我的onClickListener看起来像这样:
private AdapterView.OnItemClickListener onListClick = new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(Results.this, ResultDetail.class);
intent.putExtra("????????", ?????????);
}
};
我知道我需要使用putExtra传递变量,但不确定如何获取我正在处理的结果的特定电话号码或网站值。
其他问题似乎没有关注每个结果有多个值,所以如果有人有任何帮助我会很感激!
编辑:如果这是有用的信息,则使用适配器用来填充列表的游标收集listViews结果。
答案 0 :(得分:3)
方法
public void onItemClick(AdapterView parent,View view,int position,long id)
最后一个参数是数据库中记录的id列值。使用此id从数据库中检索记录。
你意图额外只是一个名称值对的映射,就像一个Hashmap。在将意图填充到您的需求之后,请调用startActivity,以启动ResultDetail活动。
Intent intent = new Intent(Results.this, ResultDetail.class);
intent.putExtra("phone", phoneNumber);
startActvity(intent);
在ResultDetail活动中,以下代码将检索值
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// get event to edit
Bundle extras = getIntent().getExtras();
String phoneNumber = extras.getString("phone");
}
或者,不是在意图中传递电话号码,地址,而是可以传递id。然后ResultDetail活动可以使用id检索记录。因此,将来,如果您决定向表中添加新列,例如mobilenumber,您只需要更改ResultDetail中的代码。