调用StartActivity时获取空白屏幕()

时间:2011-02-22 19:40:46

标签: android android-emulator android-layout android-manifest

提前感谢您的努力。

我有一个围绕ListActivity扩展类的应用程序。在应用程序启动之前,我想检查用户是否已注册,如果没有告诉他并从他那里获得一些信息。所以,我试图在OnCreate()方法中调用StartActivity。当它加载时,我得到了一个大黑屏。 我认为它可能与在OnCreate中运行有关,所以我让Activity像往常一样启动,我尝试在OnClick事件中运行它,我得到了相同的结果。 在这两种情况下,如果我按下escape,那个窗口就会消失,主应用程序窗口会回来。

以下是我调用新活动

的行
Intent emailIntent = new Intent(this, EmailAddressGetter.class);
this.startActivity(emailIntent);

这是类的代码

/**
 * 
 */
package com.kosherapp;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;

/**
 * @author Josh
 * 
 */
public class EmailAddressGetter extends Activity {

    public void OnCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.emailinput);
    }

}

这是emailinput xml内容

<?xml version="1.0" encoding="utf-8"?>
<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:background="#ffffff"
    android:textColor="#000000"
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    android:text="hello"
>
</TextView>

而且,这里是清单内容

<?xml version="1.0" encoding="utf-8"?>
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.kosherapp"
    android:versionCode="1"
    android:versionName="1.0"
>
    <uses-permission
        android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission
        android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission
        android:name="android.permission.INTERNET" />
    <uses-permission
        android:name="android.permission.CALL_PHONE" />

    <application
        android:icon="@drawable/icon"
        android:label="@string/app_name"
    >
        <activity
            android:name=".KosherApp"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.NoTitleBar"
        >
            <intent-filter>
                <action
                    android:name="android.intent.action.MAIN" />
                <category
                    android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".EmailAddressGetter"
            android:label="email Address Getter"
        >
        </activity>
        <activity
            android:name=".GoogleMaps"
            android:label="Google Maps"
        >
        </activity>
        <uses-library
            android:name="com.google.android.maps" />
    </application>
</manifest> 

如果您有任何其他信息,请告诉我。哦,我正在运行Google API 2.1更新

由于

3 个答案:

答案 0 :(得分:5)

OnCreate更改为onCreate中的EmailAddressGetter

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.emailinput);
}

答案 1 :(得分:0)

您需要使用EditText代替。 TextView用于静态文本,这就是为什么没有显示的原因。您还应该将EditText包含在另一个布局中,例如Linear或Relative,这样看起来更干净。

答案 2 :(得分:0)

您使用的意图是调用EmailAddressGetter,但它在清单中没有intent过滤器。在你的onCreate中输入类似Log.e(“EmailAddressGetter”,“它工作”)的内容,并使用ddms查看它是否真正打开了该活动。

此外,在您对Robby Pond的评论中更新的代码中,从EditText中删除xmlns行