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