Моя проблема довольно проста. Я создаю карту, основанную на результате HTTP-запроса, выполняемого внутри отдельного потока. Карта также имеет метод onclick и определяется внутри runOnUiThread(), расположенной внутри отдельного потока. Однако, когда устройство прослушивается, событие onclick не запускается.Google Glass Immersion - 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;
}
Вы создаете 'Runnable' но не запустить его в любом случае. По крайней мере, ты не показал нам. –
@KevinKrumwiede Да, я запускаю его, отредактировал код выше (забыл добавить эту часть в выдержку) – Lightwind