首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >setContentView导致崩溃

setContentView导致崩溃
EN

Stack Overflow用户
提问于 2014-04-04 14:09:27
回答 4查看 9.1K关注 0票数 4

我正在尝试安卓网站这里上的第一个教程

目标是输入文本并将其发送到下一页以显示它。

然而,我总是得到“不幸的是,我的第一个应用程序已经停止”。

我注意到,当我注释掉setContentView(textView);时,它是有效的。

下面是我的代码:(LogCat出于某种原因停止显示问题,所以我无法给出日志)

代码语言:javascript
复制
package com.example.myfirstapp;

import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

public class DisplayMessageActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {


        // Get the message from the intent
        Intent intent = getIntent();
        String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

        // Create the text view
        TextView textView = new TextView(this);
        textView.setTextSize(40);
        textView.setText(message);

        // Set the text view as the activity layout
     // setContentView(textView);

        super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_display_message);

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

    }
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-04-04 14:16:06

请尝试下面的代码并张贴日志。

代码语言:javascript
复制
    package com.example.myfirstapp;

        import android.content.Intent;
        import android.os.Bundle;
        import android.support.v4.app.Fragment;
        import android.support.v7.app.ActionBarActivity;
        import android.view.LayoutInflater;
        import android.view.MenuItem;
        import android.view.View;
        import android.view.ViewGroup;
        import android.widget.TextView;

            public class DisplayMessageActivity extends ActionBarActivity {

                @Override
                protected void onCreate(Bundle savedInstanceState) {
                   super.onCreate(savedInstanceState);
                   setContentView(R.layout.activity_display_message);

                    // Get the message from the intent
                    Intent intent = getIntent();
                    String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

                    // Create the text view
                    TextView textView = (TextView) findViewById(R.id.textView);
                    textView.setTextSize(40);
                    textView.setText(message);

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

               }
}

我认为也需要用xml声明TextView。我希望这能帮上忙。谢谢!

票数 1
EN

Stack Overflow用户

发布于 2014-04-04 14:12:03

这一行应该就在你的onCreate之后(Bundle savedInstanceState)

代码语言:javascript
复制
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_message);

试试看。

票数 2
EN

Stack Overflow用户

发布于 2014-04-04 14:11:36

不能在setContentView()之前调用super.onCreate()

通常,super.onCreate()应该是重写的onCreate()中的第一行。

请注意,稍后您已经有了覆盖注释掉的setContentView()内容视图的setContentView()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22865137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档