【问题标题】:Setting OnItemClickListener from Adapter Class从适配器类设置 OnItemClickListener
【发布时间】:2016-09-04 12:26:16
【问题描述】:

我的 MainActivity.java 中有一个 ListView。该列表视图的适配器是从AsyncTask 类中设置的,该类从sqlite 数据库中提取数据。现在我需要为ListView 设置OnItemClickListener。我试图从不同的类设置监听器,包括 MainActivity 类和扩展 ArrayAdapter 类的类,但由于某种原因它不起作用。

我也尝试从扩展 AsyncTask 的类中执行此操作,但我收到一条错误消息,提示我需要从 UI 线程

设置侦听器
    @Override
    protected void onPostExecute(String s) {
        if(s.equals(SUCCESS_FETCH_ALL)){
            mList.setAdapter(adapter);
        }
        else if (s.equals(SUCCESS_INSERT))
            mActivity.startActivity(new Intent(mContext, MainActivity.class));
     }

我也尝试创建一个单独的类并使其实现 Click Listener

The entire code is on Github

以下是问题中涉及的课程的链接

【问题讨论】:

  • ListView上设置onItemClick的代码在哪里?不清楚为什么要从适配器中设置侦听器

标签: android listview android-asynctask listviewitem


【解决方案1】:

LectureListAdapter中你可以在getView()中设置clickListener

 @Override
    public View getView(int position, View convertView, ViewGroup parent) {

           .....

        row.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v){
            // do your stuff here for onlick
         }
        });
        return row;
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-28
    • 2023-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多