java ActivityResultLauncher为空
由于startActivityForResult()
现在已被弃用,因此我尝试通过以下方式实现我的意图:
public class Stt extends MainActivity {
private TextView _dialogText;
ActivityResultLauncher<Intent> activityResultLauncher = registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
new ActivityResultCallback<ActivityResult>() {
@Override
public void onActivityResult(ActivityResult result) {
if (result.getResultCode() == Activity.RESULT_OK) {
Intent data = result.getData();
// do something with data
}
}
});
public Stt(View targetView, Context context) {
_dialogText = targetView.findViewById(R.id.dialog_text);
ImageView dialogSst = targetView.findViewById(R.id.dialog_sst);
dialogSst.setOnClickListener(_view -> {
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.ACTION_RECOGNIZE_SPEECH, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Say something ...");
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault());
activityResultLauncher.launch(intent);
});
}
}
所以activityResultLauncher.launch(intent);
肯定有什么问题,因为我得到了这个错误:
java.lang.NullPointerException: Attempt to invoke virtual method '安卓.app.ActivityThread$ApplicationThread 安卓.app.ActivityThread.getApplicationThread()' on a null object reference
我的代码怎么了
共 (0) 个答案