Android新手,我的简单名称 - getter应用程序崩溃了

时间:2011-06-21 19:32:35

标签: java android

嘿伙计们我只是在写一个名字getter应用程序,因为我正在学习android,我被迫在模拟器中加载时关闭应用程序。我很新,所以这可能很简单。

namegetter.java

package edu.calpoly.android.lab1;
// tools
import android.app.Activity;
import android.content.Intent;
import android.content.pm.LabeledIntent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class NameGetter extends Activity implements android.view.View.OnClickListener{
    // variables
    private android.widget.EditText textEdit_Name;
    private android.widget.Button button_Submit;
    private String string_Name;
    private android.content.Intent intent_GetText;
    private android.os.Bundle bundle;
    private android.widget.TextView textView_Top;
    @Override
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.setContentView(R.layout.name_getter);

        // assign local variables
        textEdit_Name = (EditText) this.findViewById(R.id.editText_Name);
        button_Submit = (Button) this.findViewById(R.id.button_Submit);
        textView_Top = (TextView) this.findViewById(R.id.LABEL1);
        button_Submit.setOnClickListener(this);

       bundle = this.getIntent().getExtras();

       bundle.getString(string_Name);
       textView_Top.setText(string_Name);


    }

    public void onClick(View v) {
        string_Name = textEdit_Name.getText().toString();
        // create intent to pass
        intent_GetText= new Intent(this, HelloWorld.class);
        // pass to hello world activity
        intent_GetText.putExtra(string_Name, textEdit_Name.getText().toString());
        // initiate 
        this.startActivity(intent_GetText);
    }
}

的Manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="edu.calpoly.android.lab1"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="12" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name="NameGetter"
                  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="HelloWorld" ></activity>

    </application>
</manifest>

5 个答案:

答案 0 :(得分:2)

最可能的原因是getExtras()返回null。

bundle = this.getIntent().getExtras();
bundle.getString(string_Name);

要获得更多帮助,我建议收集logcat(adb logcat)并发布实际异常。

答案 1 :(得分:1)

bundle.getString(string_Name);可能会抛出一个NullPointer,因为在第一次启动时,意图中不会添加任何包。

答案 2 :(得分:1)

出于预感我会说你需要删除这两行(空指针异常):

 bundle = this.getIntent().getExtras();
 bundle.getString(string_Name);

但没有日志文件就很难说。为什么?从主屏幕点击您的应用程序时,您将不会有额外的内容。

答案 3 :(得分:1)

我认为你的问题在这里:

bundle = this.getIntent().getExtras();
bundle.getString(string_Name);

你想在那里做什么?

在第二行的时候,string_Name为空。

答案 4 :(得分:0)

我看到的有助于改善生活的事情:

您不必使用完全限定的android.widget.EditText myEditText。只需EditText myEditText即可。这是你的import语句处理的内容;)

你的清单中有一个minSdkVersion =“12”。这可能会出现问题,因为这与您的应用程序相关只会在具有android 3.1的设备上运行。尝试使用minsdk = 7(Android 2.1及更高版本,更高效)

在清单中可能有更多错误,但我只有几分钟可以看:)