我的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
答案 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
}
我知道这是一个显而易见的答案,但也许不是。