OnCreate()是设置文本的最佳位置吗?

时间:2011-04-26 00:06:40

标签: java android android-activity textview oncreate

我将数据从活动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"));
        }
    }

3 个答案:

答案 0 :(得分:0)

如果MessageDetailActivity是单一活动,则oncreate只会被调用一次。所以onResume是一个更好的设置文本的地方。

答案 1 :(得分:0)

只要关联的视图不再可见,就会重新启动活动。 onCreate仅在首次构建活动时调用,而不是在重新启动时调用。因此,设置文本的更好位置至少在onStart()方法中。请查看活动生命周期here

答案 2 :(得分:0)

简而言之,是的。

但是,如果您想让某人(即子活动)能够修改文本,那么您可能需要在onStart()中设置文本;

另一方面,你真的不希望你的setupUI()方法公开。