【问题标题】:Is OnCreate() The Best Place To Set Text?OnCreate() 是设置文本的最佳位置吗?
【发布时间】:2011-04-26 00:06:40
【问题描述】:

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

【问题讨论】:

    标签: java android android-activity textview oncreate


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        简而言之,是的。

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

        另一方面,您不太可能真的希望您的 setupUI() 方法公开。

        【讨论】:

          猜你喜欢
          • 2022-06-22
          • 1970-01-01
          • 1970-01-01
          • 2011-12-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多