我的Android应用显示了一个平面图,在该平面图上的特定区域设置了透明按钮。我还实现了语音识别功能,该功能可以返回Listview。当用户选择一项时,将执行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

最佳答案

我有完全相同的问题。当然,我认为必须有某种内置的return方法,该方法可以告诉我们单击是由实际的onClick()方法还是由performClick()执行,但是经过一段时间的搜索后,我决定制作一个自己的解决方案...

在执行点击的类中称为create:

public static boolean performClicked;


在调用“ performClick()”的方法中,只需更改
     performClicked = true;
在通话之前立即执行点击。

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

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


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

07-25 22:18