嘿伙计们我只是在写一个名字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>
答案 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及更高版本,更高效)
在清单中可能有更多错误,但我只有几分钟可以看:)