У меня есть MainActivity, содержащее 5 фрагментов, 2 из которых имеют значок справки на панели инструментов в правом верхнем углу.Я спрятал эту иконку на 3 других фрагмента.При нажатии на значок справки появляется диалоговое окно с заголовком, сообщением и положительной кнопкой.
Это мой код диалога оповещения:
public class HelpDialogFragment extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Help");
builder.setMessage("Placeholder");
builder.setPositiveButton("Got It", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {}
});
return builder.create();
}
}
, и вот как я его показываюMainActivity:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_help:
DialogFragment helpDialog = new HelpDialogFragment();
helpDialog.show(getSupportFragmentManager(), "dialogHelp");
return true;
}
return super.onOptionsItemSelected(item);
}
Приведенный выше код работает, но я хотел бы показать другое сообщение в зависимости от выбранного фрагмента, так как изменить сообщение?Я пытался это изменить, чтобы изменить заголовок
helpDialog.getDialog().setTitle("Some Text");
Обратите внимание, что я хочу изменить диалоговое сообщение, т. Е. Основное содержимое. Я получил только метод setTitle()
для getDialog()
, а не setMessage()
, указанный выше setTitle
это просто для примера, но даже он генерирует исключение NullPointerException.
![enter image description here](https://i.stack.imgur.com/aj4Nf.png)
Как вы можете видеть на скриншоте выше, текст по умолчанию является текстом по умолчаниюЯ добавил во время создания AlertDialog, но как теперь его изменить?