【问题标题】:setOnClickListener inside CustomAdapterCustomAdapter 中的 setOnClickListener
【发布时间】:2016-07-23 15:43:59
【问题描述】:

我试图让 OnClickListener 在我的 CustomAdapter 中工作,但在我的情况下没有任何反应。

@Override
public View getView(int i, View view, ViewGroup viewGroup) {
    if(inflater == null){
        inflater= (LayoutInflater) c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }
    if(view==null){
        view=inflater.inflate(R.layout.list_item_blog,viewGroup,false);
        ListView lv = (ListView) view.findViewById(R.id.listView);

    if(lv!=null){
            lv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Dialog d = new Dialog(view.getContext());
                d.setContentView(R.layout.dialog_layout);
                d.show();
            }
        });
    }
    }

【问题讨论】:

  • 列表视图中是否有列表视图?你也可以发布你的布局xmls
  • 调试并在setOnClickListener 行放置一个断点,看看它是否命中了该行。
  • 您在适配器绑定到的列表视图上设置了一个 ItemClickListner。不在适配器内

标签: android listview android-adapter


【解决方案1】:

我怀疑你的 lLstItemView 中有一个 ListView。您现在正在做的是获取您的列表项,然后尝试在其中找到一个 ListView 来设置您的点击侦听器。

如果您真的想在整个列表上设置点击监听器,那么您应该在您的活动中执行此操作,或者您可以通过添加 clickListener 或作为参数传入的父 viewGroup 来设置它:

viewGroup.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View view) {
    Dialog d = new Dialog(view.getContext());
    d.setContentView(R.layout.dialog_layout);
    d.show();
  }
});

如果您想在列表项上设置点击侦听器,那么您应该使用ListView.setOnItemClickListener(ClickListener) 在活动代码中的 listView 上设置 clickListener:

listView.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {
    Dialog d = new Dialog(view.getContext());
    d.setContentView(R.layout.dialog_layout);
    d.show();
  }
});

如果您想在列表项内的视图上设置点击侦听器,请检查您尝试获取的视图的 ID 是否存在于 list_item_blog 中,以确保获取正确的子视图。

祝你好运!希望这会有所帮助。

【讨论】:

  • 不...你应该使用listview.setOnItemClickListener
  • 是的,如果你想在整个项目上设置它,你应该使用setOnItemClickListener我会更新我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多