2014-08-31 48 views
0

我在Eclipse中工作,我的應用程序編輯兩個整數,然後單擊按鈕,這樣應用程序將顯示平均值,但是當我在設備中操作應用程序時我按一下按鈕就停止工作,並顯示消息 「應用程序已停止」當我點擊按鈕它不起作用(Android)

XML文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <EditText 
     android:id="@+id/editText1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="20dp" 
     android:ems="10" /> 

    <EditText 
     android:id="@+id/editText2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/editText1" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="22dp" 
     android:ems="10" > 

     <requestFocus /> 
    </EditText> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/editText2" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="28dp" 
     android:text="Button" /> 

    <TextView 
     android:id="@+id/text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignRight="@+id/button1" 
     android:layout_below="@+id/button1" 
     android:layout_marginTop="72dp" 
     /> 

</RelativeLayout> 

JAVA文件:

package com.example.mine; 

//import com.example.mine.R; 
import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

public class MainActivity extends Activity { 
    EditText num1, num2; 
    Button count; 
    TextView text; 
    String e1, e2; 
    int q, i, r; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     count = (Button) findViewById(R.id.button1); 
     num1 = (EditText) findViewById(R.id.editText1); 
     num1 = (EditText) findViewById(R.id.editText2); 
     text = (TextView) findViewById(R.id.text); 
     count.setOnClickListener(new OnClickListener() { 

      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
       e1 = num1.getText().toString(); 
       e2 = num2.getText().toString(); 

       q = Integer.parseInt(e1); 
       i = Integer.parseInt(e2); 

       r = (i + q)/2; 

       text.setText("the average is " + r); 

       // text.setText(Integer.toString(r)); 
       // text.setText(r+""); 
      } 
     }); 
    } 
} 

清單:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.mine" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="18" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.example.mine.MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

logcat的是空

+0

錯誤消息和堆棧跟蹤?或者至少是錯誤的行號。 – 2014-08-31 21:27:24

+0

請發佈崩潰的logcat輸出 – 2014-08-31 21:28:11

回答

2

看看這兩條線:

q = Integer.parseInt(e1); 
    i = Integer.parseInt(e2); 

如果E1或E2是不是一個數字,parseInt會拋出異常IllegalArgument。一般來說,你應該總是期望parseInt有可能用用戶輸入引發異常 - 所以try/catch塊幾乎總是有保證的。

我沒有看到任何爲edit1或edit2設置的默認文本,所以沒有異常崩潰的logcat轉儲,這是我最好的猜測。

+0

logcat爲空 – 2014-09-01 17:55:42