小编Hip*_*iff的帖子

Android - 活动onCreate和Fragment onCreate

我还是Android编程的新手,所以这个问题很基础.我在Internet上看到许多代码示例,其中UI组件(如a TextView)正在初始化并在onCreate()Activity 的方法中访问.

当我使用Android Studio来创建一个新的项目- FirstApp-使用默认设置,一个空白的活动叫做MainActivity带来与它一起activity_mainfragment_main,我可以马上编译此为APK,部署我的设备上,我也得到一个屏幕,标题" FirstApp"和左上角的TextView显示"Hello world!".

如果我给出TextView一个ID textview1,并创建一个成员变量,TextView myTextView;那么我可以onCreate()在Activity 的方法中引用它,就像这样(当然没有编译器错误):

    @Override
    protected void onCreate (Bundle savedInstanceState)
    {
        super.onCreate (savedInstanceState);
        setContentView (R.layout.activity_main);
        myTextView = (TextView) findViewById (R.id.textview1);
        myTextView.setText ("Hello tablet!");

        if (savedInstanceState == null)
        {
            getSupportFragmentManager().beginTransaction().add (R.id.container,new PlaceholderFragment()).commit();
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是,如果我编译并运行APK,则会导致"不幸的是,FirstApp已停止".信息.

我以前通过将访问UI组件的启动代码移动到onStart()Activity 的方法中解决了这个问题,如下所示:

    @Override
    protected void onStart()
    {
        super.onStart();
        myTextView = (TextView) findViewById (R.id.textview1);
        myTextView.setText ("Hello tablet!");
    }
Run Code Online (Sandbox Code Playgroud)

这将导致一个工作的APK在左上角显示一个单独的TextView显示"Hello平板电脑!" - …

android onstart oncreate android-fragments

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

android ×1

android-fragments ×1

oncreate ×1

onstart ×1