Кнопка не работает в новой теме
Ранее у меня была ошибка - что-то про какой-то цикл, я видел информацию о том, что в этом случае необходимо создать новый поток для кнопки, но все равно ничего не происходит, журналы мыслей теперь не показывают ошибок.
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
private static final int CAPTURE = 9003;
Button button;
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.capture);
button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(context, "BUTTON clicked", Toast.LENGTH_LONG).show();
Log.d("BUTTON","CLICKED");
}
});
}
});
Intent intent = new Intent(this, CaptureActivity.class);
intent.putExtra(CaptureActivity.AutoFocus, true);
startActivityForResult(intent, CAPTURE);
}
}
1 ответ
runOnUiThread
означает, что вы говорите потоку пользовательского интерфейса, чтобы выполнить переданный Runnable
как инструкция, так что это не будет создавать новую тему.
Решение: я предполагаю, что этот код предназначен для демонстрации в целях создания многопоточности и обновления пользовательского интерфейса, поэтому одной из лучших альтернатив является AsyncTask
и удалить runOnUiThread
функция, в этом нет необходимости
Вам нужно удалить этот код или переместить его в метод run
Intent intent = new Intent(this, CaptureActivity.class);
intent.putExtra(CaptureActivity.AutoFocus, true);
startActivityForResult(intent, CAPTURE);
Потому что вы в настоящее время в CaptureActivity
не на MainActivity
, OnCreate
непосредственно доставит вас к CaptureActivity
где вы ожидаете код MainActivity
бежать (возможно, у них одинаковый интерфейс)