Как использовать Jetpack Navigation для одноэкранного приложения (или можно ли избежать использования навигации)?
Я пытаюсь изучить Java-кодирование и создаю простое одноэкранное приложение в Android Studio, следуя руководству. Учебное пособие было написано до того, как был представлен Jetpack Navigation, и я столкнулся с ошибкой компилятора, связанной с вставленным кодом Navcontroller. Фрагменты приведены ниже. В идеале я хотел бы включить базовые функции Navcontroller, чтобы иметь возможность расширять использование этих функций по мере того, как я начинаю изучать более сложные структуры приложений. Итак, как мне заставить мое простое приложение скомпилироваться и запуститься, решив указанные ниже проблемы? Или, альтернативно, могу ли я закомментировать или отключить использование Navcontroller, поскольку я не думаю, что он мне нужен на данный момент.
В приведенном ниже фрагменте кода я получаю сообщение об ошибке компилятора, сообщающее, что он не может разрешить ссылку «nav_host_fragment_content_main» в строке кода «NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment_content_main);» в процедуре onCreate.
Фрагмент кода:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
txtGuess = (EditText) findViewById(R.id.txtGuess);
btnGuess = (Button) findViewById(R.id.btnGuess);
btnPlayAgain = (Button) findViewById(R.id.btnPlayAgain);
lblOutput = (TextView) findViewById(R.id.lblOutput);
newGame();
btnGuess.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
checkGuess();
}
});
btnPlayAgain.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
btnPlayAgain.setVisibility(View.INVISIBLE);
txtGuess.setText("");
newGame();
}
});
setSupportActionBar(binding.toolbar);
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment_content_main);
appBarConfiguration = new AppBarConfiguration.Builder(navController.getGraph()).build();
NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
binding.fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}