在第一个Activity启动Intent后,第二个Activity显示空白屏幕



嗨,我试图使用隐式意图来启动第二个活动。TextView和Button为Activity One工作,但是当我单击按钮启动第二个Activity时,我没有看到第二个Activity中的任何TextView。我得到的只是黑屏。如果我按回,它会把我带回到活动一。

我也遵循这个只是作为一个测试:http://mubasheralam.com/tutorials/android/how-start-another-activity

同样的事情发生了。我可以看到活动一,但活动二只是一个空白的屏幕。

下面是我的代码:

ActivityOne.java:

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.content.Context;
import android.content.Intent;
import android.widget.Button;
import android.view.View.OnClickListener;
import android.view.View;
import android.widget.LinearLayout;

public class ActivityOne extends Activity implements OnClickListener {
    private TextView mytext;
    private Button mybutton;
    private LinearLayout linearlayout;    
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        linearlayout = new LinearLayout(this);
        mytext = new TextView(this);
        mybutton = new Button(this);
        mybutton.setText("Next Activity");
        mybutton.setOnClickListener(this);
        mytext.setText("Activity1");
        linearlayout.addView(mytext);
        linearlayout.addView(mybutton);
        setContentView(linearlayout);
    }
    public void onClick(View v) {
        Intent intent = new Intent();
        intent.setAction("com.example.hello.SHOW");
        intent.putExtra("com.example.hello.Implicit_intent", "This is extras");
        startActivity(intent);
    }
}

ActivityTwo.java

import android.app.Activity;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.TextView;
public class ActivityTwo extends Activity {
    private TextView mytext;
    private LinearLayout linearlayout;
    public void OnCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mytext = new TextView(this);
        linearlayout = new LinearLayout(this);
        linearlayout.addView(mytext);
        Bundle extras = getIntent().getExtras();
        mytext.setText("Activity One value: " + extras.getString("com.example.hello.Implicit_intent"));
        setContentView(linearlayout);
    }
}

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.example.hello"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="10" />
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".ActivityOne"
                  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=".ActivityTwo"
                  android:label="@string/app_name">
            <intent-filter>
                    <action android:name="com.example.hello.SHOW" />
                    <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
    </application>
</manifest>

我正在使用Android Emulator 2.3.3, CPU/ABI是ARM

你可以尝试添加布局参数到textview和线性布局在ActivityTwo像

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ViewGroup.LayoutParams tParams = new LayoutParams(LayoutParams.WRAP_CONTENT,
            LayoutParams.WRAP_CONTENT);
    ViewGroup.LayoutParams lParams = new LayoutParams(LayoutParams.FILL_PARENT,
            LayoutParams.FILL_PARENT);
    mytext = new TextView(this);
    linearlayout = new LinearLayout(this);
    mytext.setLayoutParams(tParams);
    linearlayout.setLayoutParams(lParams);
    linearlayout.addView(mytext);
    Bundle extras = getIntent().getExtras();
    mytext.setText("Activity One value: " + 
            extras.getString("com.example.hello.Implicit_intent"));
    setContentView(linearlayout);
}

相关内容

最新更新