我的应用无法启动活动?

时间:2012-01-14 02:05:51

标签: java android eclipse logcat

当我尝试在手机上运行应用程序时,当我尝试执行活动3时强制关闭。  Logcat说:

01-13 17:53:25.368:E / AndroidRuntime(3235):引起:java.lang.NullPointerException 01-13 17:53:25.368:E / AndroidRuntime(3235):在android.app.activity3.onCreate(activity3.java:18)

第18行是

Button wg = (Button) findViewById(R.id.Back); 

以下是我对activity3.java的完整代码:

package android.app;
import android.app.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;


public class activity3 extends Activity{

    /** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main3);

        Button wg = (Button) findViewById(R.id.Back);
        wg.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                Intent intent = new Intent();
                setResult(RESULT_OK, intent);
                finish();
            }

        });
    }
}

提前致谢

4 个答案:

答案 0 :(得分:1)

我没有在xml中看到一个按钮。一旦你有了它,它需要:

android:id="@+id/Back"

答案 1 :(得分:1)

这种情况正在发生,因为您的视图中没有声明按钮。只有Textview。您必须在视图中创建按钮。你没有引用任何东西因此为空。

您可以找到一个很好的示例,了解如何制作按钮here

答案 2 :(得分:1)

你发布的xml中没有id为“Back”的按钮,这就是你在那里获得null的原因。在xml中添加按钮条目。

答案 3 :(得分:1)

您需要修改xml:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

    <!-- your textview -->
    <TextView
        android:id="@+id/text1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/text1"
        android:textAppearance="?android:attr/textAppearanceMedium"
        />

    <!-- your back button -->
    <Button
        android:id="@+id/back"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/Back"
        />

</RelativeLayout>

我做了什么:

  • 从根RelativeLayout中删除了文本和方向,这些都不执行任何操作。
  • 修改您的身高和宽度,随意更改这些。
  • 添加了一个ID为R.id.back且文本为@ string / Back。
  • 的按钮

现在,您可以使用findViewById(R.id.back)引用您的按钮并设置您的点击监听器。