2014-08-31 110 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