【问题标题】:Different click events for different objects on ListView rowListView 行上不同对象的不同点击事件
【发布时间】:2015-12-08 04:59:34
【问题描述】:

我正在尝试为单行列表视图的不同部分实现不同的单击事件侦听器。

例如:

我为 2 个不同的部分制作了 2 个不同的线性布局。为 2 种不同布局实现 onclick 侦听器的任何特定方法?

如果您有想法,请建议任何其他执行此操作的过程。

附:我无法在自定义适配器中定义点击事件,因为 Activity 需要通过向其中添加一些数据来触发事件。

【问题讨论】:

  • 在您的活动中创建一个方法并在您单击布局时调用它。
  • 嗯,好主意,让我试试看!
  • @RaviRupareliya 我收到 java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on an null object reference
  • 好像无法访问资源!
  • 检查我的答案@kittu88

标签: java android listview android-listview


【解决方案1】:

在您的 Activity 中创建 static 方法:

public static void YourMethod()
{

}

adapter 中创建onClickListener 并调用activity 方法。

holder.YourLayout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            YourActivity.YourMethod();
        }
    });

【讨论】:

  • 我收到此错误:java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on an null object reference跨度>
  • 你应该用你已经完成的代码更新你的问题
  • 它可以工作,但如果方法是静态的,那么我无法访问我的非静态变量。 getApplicationContext() 和 startActivity() 也不起作用。
  • 然后将您的上下文转换为活动并调用该方法
  • 非常感谢老兄!你让我开心:)
【解决方案2】:

您可以像这样在适配器类中实现单击侦听器-

layout1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


            }
        });

layout2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


            }
        });

【讨论】:

  • 我知道,忘了提,显示列表视图的活动需要处理点击事件。它会将一些数据推入其中。与事件。那么,有没有办法从 Activity 而不是适配器访问布局?
  • 您可以通过布局创建回调接口并在您的活动中获取回调来做到这一点
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-04
  • 2013-08-17
  • 2018-05-10
  • 1970-01-01
  • 2016-03-20
  • 1970-01-01
  • 2012-09-19
相关资源
最近更新 更多