Android Studio:新活动将作为空白屏幕打开

jac*_*ays 10 java android android-activity android-studio

你好!
我刚刚开始使用Android Studio.我搜索了一个匹配的问题,但没有欢乐,如果你已经看过这个问题,请大喊大叫!

我的主要活动有一个按钮,打开第二个活动,按钮工作,它打开.但第二个活动显示为空白屏幕,而不是应该存在的文本.

为任何不相关的复制/粘贴道歉!

表现:

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Theme.AppCompat.NoActionBar" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".fiveThreeOne"
            android:label="@string/title531">
        </activity>
    </application>
Run Code Online (Sandbox Code Playgroud)

主要活动:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:textColor="#ffdedede"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="fiveThreeOne"
        android:textAllCaps="false"
        android:id="@+id/open531btn"
        android:layout_below="@+id/mainTitle"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="38dp" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

主类中的按钮代码

public class MainActivity extends ActionBarActivity {

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

        Button open531button = (Button) findViewById(R.id.open531btn);
        open531button.setOnClickListener(new OnClickListener(){

            public void onClick(View v){
                startActivity(new Intent(MainActivity.this, fiveThreeOne.class));
            }
        });

    }
Run Code Online (Sandbox Code Playgroud)

第二个活动xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:text="@string/title531"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:editable="false"
        android:textSize="35sp"
        android:id="@+id/title531"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />


</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

谢谢!

小智 60

它有时会发生而不是重载

protected void onCreate(Bundle savedInstanceState) {
Run Code Online (Sandbox Code Playgroud)

你最终超载

public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) 
Run Code Online (Sandbox Code Playgroud)

代替.确保仅将savedInstanceState作为参数的onCreate重载.

  • 谢谢!这很容易错过.他们应该在Android Studio中添加一个警告. (4认同)
  • 你可能意味着压倒一切 (2认同)

小智 12

您是否像这样在setContentView()行中设置了活动的布局.这里activity_second是我的SecondActivity的活动布局

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
    }
Run Code Online (Sandbox Code Playgroud)

如果没有,那么您的活动将显示为空白.希望这能解决你的问题.

  • 可能你覆盖了`public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState)`而不是`protected void onCreate(Bundle savedInstanceState)` (4认同)