0

为什么当我点击按钮启动 First Activity 时我的应用程序强制关闭

这是启动活动:

public class ForeverAlone extends Activity implements OnClickListener{
    /** Called when the activity is first created. */

    Button start;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        start = (Button) findViewById(R.id.bStart);
        start.setOnClickListener(this);
    }

            @Override
            public void onClick(View v) {
                Intent myIntent = new Intent(ForeverAlone.this, First.class);
                ForeverAlone.this.startActivity(myIntent);
            }

    }

这是我按下按钮后要出现的活动:

public class First extends Activity implements OnClickListener {

    Button firstNext;
    EditText firstFacebook, firstReallife;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.first);
        firstNext = (Button) findViewById(R.id.bFirstNext);
        firstFacebook = (EditText) findViewById(R.id.etFirst1);
        firstReallife = (EditText) findViewById(R.id.etFirst2);
        firstNext.setOnClickListener(this);
        String firstFB = firstFacebook.getText().toString();
        String firstRL = firstReallife.getText().toString();
        DataHelper.insert(firstFB, firstRL);
    }



        @Override
        public void onClick(View v) {
            Intent myIntent = new Intent(First.this, Second.class);
            First.this.startActivity(myIntent);
        }
}

任何帮助都将不胜感激!

[编辑]

这是 LogCat:

01-08 19:19:55.656: D/dalvikvm(363): GC_EXTERNAL_ALLOC freed 50K, 53% free 2553K/5379K, external 1625K/2137K, paused 76ms
01-08 19:19:57.966: D/AndroidRuntime(363): Shutting down VM
01-08 19:19:57.966: W/dalvikvm(363): threadid=1: thread exiting with uncaught exception (group=0x40015560)
01-08 19:19:57.986: E/AndroidRuntime(363): FATAL EXCEPTION: main
01-08 19:19:57.986: E/AndroidRuntime(363): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.kenning.foreveralone/com.kenning.foreveralone.First}: java.lang.NumberFormatException: unable to parse '' as integer
01-08 19:19:57.986: E/AndroidRuntime(363):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
01-08 19:19:57.986: E/AndroidRuntime(363):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
01-08 19:19:57.986: E/AndroidRuntime(363):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
01-08 19:19:57.986: E/AndroidRuntime(363):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
01-08 19:19:57.986: E/AndroidRuntime(363):  at android.os.Handler.dispatchMessage(Handler.java:99)
01-08 19:19:57.986: E/AndroidRuntime(363):  at android.os.Looper.loop(Looper.java:123)
01-08 19:19:57.986: E/AndroidRuntime(363):  at android.app.ActivityThread.main(ActivityThread.java:3683)
01-08 19:19:57.986: E/AndroidRuntime(363):  at java.lang.reflect.Method.invokeNative(Native Method)
01-08 19:19:57.986: E/AndroidRuntime(363):  at java.lang.reflect.Method.invoke(Method.java:507)
01-08 19:19:57.986: E/AndroidRuntime(363):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-08 19:19:57.986: E/AndroidRuntime(363):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-08 19:19:57.986: E/AndroidRuntime(363):  at dalvik.system.NativeStart.main(Native Method)
01-08 19:19:57.986: E/AndroidRuntime(363): Caused by: java.lang.NumberFormatException: unable to parse '' as integer
01-08 19:19:57.986: E/AndroidRuntime(363):  at java.lang.Integer.parseInt(Integer.java:362)
01-08 19:19:57.986: E/AndroidRuntime(363):  at java.lang.Integer.parseInt(Integer.java:332)
01-08 19:19:57.986: E/AndroidRuntime(363):  at java.lang.Integer.<init>(Integer.java:105)
01-08 19:19:57.986: E/AndroidRuntime(363):  at com.kenning.foreveralone.DataHelper.insert(DataHelper.java:9)
01-08 19:19:57.986: E/AndroidRuntime(363):  at com.kenning.foreveralone.First.onCreate(First.java:27)
01-08 19:19:57.986: E/AndroidRuntime(363):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-08 19:19:57.986: E/AndroidRuntime(363):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
01-08 19:19:57.986: E/AndroidRuntime(363):  ... 11 more

[编辑]

我找到了“强制关闭”问题的原因。

就是这几行代码:

String firstFB = firstFacebook.getText().toString();
String firstRL = firstReallife.getText().toString();
DataHelper.insert(firstFB, firstRL);

如何阻止该方法遇到它们并以某种方式跳过它们?

4

3 回答 3

1

如果您发布 logcat 输出会有所帮助,但我猜您没有First在清单中列为活动。要么,要么其中的某些东西First.onCreate正在产生异常。

于 2012-01-08T19:33:14.563 回答
0

你有一个 NumberFormatException。根据您的 logcat 输出,您正在插入一个空字符串,其中 Datahelper 类中需要一个整数:

at com.kenning.foreveralone.DataHelper.insert(DataHelper.java:9)
于 2012-01-08T20:02:00.160 回答
0

您正在获取 EditTexts 的实例

    firstFacebook = (EditText) findViewById(R.id.etFirst1);
    firstReallife = (EditText) findViewById(R.id.etFirst2);

然后得到他们的价值观

    String firstFB = firstFacebook.getText().toString();
    String firstRL = firstReallife.getText().toString();

并在这里使用它们

    DataHelper.insert(firstFB, firstRL);

但是 EditTexts 是空的,所以你实际上是在传递一个空字符串,因此

Caused by: java.lang.NumberFormatException: unable to parse '' as integer
于 2012-01-08T20:04:35.437 回答