繁体   English   中英

将 OnItemClickListener 设置为 ListView

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM