按钮单击performClick()或单击显示android

时间:2016-12-05 09:34:09

标签: android button onclick

我的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

1 个答案:

答案 0 :(得分:1)

我有完全相同的问题。我当然认为必须有某种内置的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
 }

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