java Google Glass浸入式OnClick在单独的线程中不工作
我的问题很简单。我正在根据在单独线程中执行的HTTP查询的结果创建一张卡。该卡还具有onclick方法,并在位于单独线程内的runOnUiThread()中定义。但是,当设备被点击时,onclick事件不会被触发
这是我的密码:
private void login() {
Runnable r = new Runnable() {
@Override
public void run() {
// irrelevant code
runOnUiThread(new Runnable() {
@Override
public void run() {
setContentView(buildError(code));
}
}
}
Thread t = new Thread(r);
t.start();
}
private View buildError(String code) {
CardBuilder card = new CardBuilder(this, CardBuilder.Layout.ALERT);
card.setIcon(R.drawable.ic_warning_150);
if (code.equals("1"))
card.setText("Incorrect credientals");
else
card.setText("Unexpected error");
card.setFootnote("Tap to try again");
View cView = card.getView();
cView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i("Event", "Clicked"); // This is what isn't triggering
}
});
cView.setFocusable(true);
cView.setFocusableInTouchMode(true);
return cView;
}
# 1 楼答案
即使代码片段包含错误(无法编译,Runnable语句中缺少
;
),但您的思路是正确的视图只需请求焦点即可立即单击。否则,您必须手动移动焦点
Reference