[英]set OnItemClickListener to ListView
它的我的代码:
ListView lv=getListView();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new ProgressTask(MainActivity.this).execute();
ImageView image = (ImageView)findViewById(R.id.image);
!!! lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
intent = new Intent(MainActivity.this,DetailInfo.class);
intent.putExtra("title",jsonlist.get(position).get("title"));
intent.putExtra("description",jsonlist.get(position).get("description"));
intent.putExtra("description",jsonlist.get(position).get("description"));
intent.putExtra("url",jsonlist.get(position).get("image"));
startActivity(intent);
问题是我尝试将 OnItemClickListener 设置为 lv。如何初始化 lv? 我有 Activity extends ListActivity.I 找不到 lv id,因为 ListView 有 id=android:id/list。 我有适配器,使用 setListAdapter(adapter) 和 all.How 为 lv 设置监听器?
首先在 onCreate() 中初始化你的 lv,然后像下面那样做,
ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new ProgressTask(MainActivity.this).execute();
//Supposing your listview is from android package
lv = (ListView)findViewById(android.R.id.list);
ImageView image = (ImageView)findViewById(R.id.image);
!!! lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
intent = new Intent(MainActivity.this,DetailInfo.class);
intent.putExtra("title",jsonlist.get(position).get("title"));
intent.putExtra("description",jsonlist.get(position).get("description"));
intent.putExtra("description",jsonlist.get(position).get("description"));
intent.putExtra("url",jsonlist.get(position).get("image"));
startActivity(intent);
我建议使用 RecyclerView,您可以在列表中的每个项目上设置 OnclickListener。 列表视图不再流行。 设置值时使用 RecyclerView 的示例:
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
AnyViewHolder view = (AnyViewHolder ) holder;
view.layout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Do something
}
});
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.