#java #android #android-activity #textview #oncreate
#java #Android #android-активность #textview #oncreate
Вопрос:
Я передаю данные из Activity A в MessageDetailActivity. Является ли onCreate () правильным местом для установки текста?
public class MessageDetailActivity extends Activity {
private TextView bodyTextView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setupUI();
}
public void setupUI(){
Bundle bundle = getIntent().getExtras();
this.bodyTextView = (TextView) findViewById(R.id.bodyTextView);
Log.d("VALUE IS", bundle.getString("message"));
Toast.makeText(getApplicationContext(), bundle.getString("message"),Toast.LENGTH_SHORT).show();
bodyTextView.setText(bundle.getString("message"));
}
}
Ответ №1:
Если MessageDetailActivity
это действие singletop, oncreate будет вызван только один раз. таким образом, onResume было бы лучшим местом для установки текста.
Ответ №2:
Действие перезапускается всякий раз, когда связанное представление больше не отображается. onCreate вызывается только при первом создании действия, а не при его перезапуске. Из-за этого лучшим местом для установки текста было бы, по крайней мере, в методе OnStart(). Взгляните на жизненный цикл activity здесь.
Ответ №3:
Короче говоря, да.
Однако, если вы хотите предоставить кому-либо (т. Е. вспомогательному действию) возможность изменять текст, тогда вы можете захотеть установить текст в OnStart ();
С другой стороны, маловероятно, что вы действительно хотите, чтобы ваш метод setupUi () был общедоступным.