【问题标题】:button clicked by performClick() or click on display androidperformClick() 单击按钮或单击显示 android
【发布时间】:2016-12-05 09:34:09
【问题描述】:

我的 Android 应用显示了一个平面图,其中在特定区域设置了透明按钮。我还实现了一个语音识别,它返回一个列表视图。当用户选择一项时,将执行 performClick() 方法,该方法调用 OnClick 方法。 OnClick 方法也被调用,当用户点击显示屏上的特定区域(透明按钮)时

我的问题是,我怎样才能看到按钮是通过 performClick() 还是通过点击显示来点击的?

button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            button.setBackgroundColor(Color.GREEN);
        }

    });


wordsList.setOnItemClickListener(
            new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> arg0, View view,
                                        int position, long id) {
                    // TODO Auto-generated method stub
                    Object o = wordsList.getItemAtPosition(position);
                    String pen = o.toString();
                    if (pen.equals("String")) {
                        button.performClick();
                        Toast.makeText(getApplicationContext(), "You have chosen: " + " " + pen, Toast.LENGTH_LONG).show();

                    }
                }
            }
    );

我已经找到了那个帖子,但我不知道如何在 Java 中实现它。 how to check if the click is Performclick or not

【问题讨论】:

  • 可以查看点击视图的id
  • 我会使用简单的标志来区分。在调用 performClick 之前,我将启用该标志。在 onclick 侦听器中,如果它是真的切换标志然后执行任务
  • 谢谢。有时这很容易。

标签: android button onclick


【解决方案1】:

我也有同样的问题。当然,我认为一定有某种内置的返回方法可以告诉我们点击是由实际的 onClick() 方法还是由 performClick() 执行的,但经过一段时间的搜索,我决定让我的自己的解决方案...

在执行单击的类中称为创建:

public static boolean performClicked;

在您调用“performClick()”的方法中只需更改 执行点击=真; 就在调用执行点击之前。

在您的 onClick 中使用类似的 if 语句:

if (performClicked){
  performClicked = false;
 //DO WHAT YOU NEED TO DO WITH THIS INFO
 }

我知道这是一个显而易见的答案,但也许不是。

【讨论】:

    猜你喜欢
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多