编译能通过,为什么在手机上运行会直接闪退呢
package com.example.mylove;
import android.app.Dialog;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
private int num ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button go = (Button) super.findViewById(R.id.go);
EditText et = (EditText) super.findViewById(R.id.et);
this.num = Integer.parseInt(et.getText().toString());
go.setOnClickListener(new OnClickListener1());}
private class OnClickListener1 implements View.OnClickListener {
@Override
public void onClick(View view){
if(forgive(num)==1){
Dialog dialog= new AlertDialog.Builder(MainActivity.this)
.setTitle("you win yourself")
.setMessage("我还能说什么呢?当然是选择原谅她!")
.setIcon(R.drawable.forgive)
.create();
dialog.show();}
else{
Dialog dialog2 = new AlertDialog.Builder(MainActivity.this)
.setTitle("you lose her").setMessage("天涯何处无芳草,请大侠重新来过!")
.setIcon(R.drawable.saybyebye)
.create();
dialog2.show();}
}
}
```<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.mylove.MainActivity"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ff00ff00"
>
<TextView
android:gravity="center"
android:textSize="25sp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/word1"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<TextView
android:text="@string/word2"
android:textSize="15sp"
android:gravity="center"
android:layout_above="@+id/et"
android:layout_height="wrap_content"
android:layout_width="fill_parent"/>
<EditText
android:id="@+id/et"
android:gravity="center"
android:hint="@string/forgive"
android:inputType="number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/go"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<Button
android:id="@+id/go"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_centerInParent="true"
android:hint="@string/go" />
</RelativeLayout>
你在onCreate方法中声明了et控件后就调用了获取数据的方法,这个时候EditTExt控件内还没有内容,
hint 属性只是提示作用,通过et.getText(0.toString()方法获取不到
可以在布局文件中给et一个text默认值或者this.num = Integer.parseInt(et.getText().toString());这句代码放到点击事件内,先对et控件内数据进行非空判断
比如:
if(!TextUtils.isEmpty(et.getText(0.toString().trin())){//如果控件内数据不为空
this.num = Integer.parseInt(et.getText().toString());
if(forgive(num)==1){
Dialog dialog= new AlertDialog.Builder(MainActivity.this)
.setTitle("you win yourself")
.setMessage("我还能说什么呢?当然是选择原谅她!")
.setIcon(R.drawable.forgive)
.create();
dialog.show();}
else{
Dialog dialog2 = new AlertDialog.Builder(MainActivity.this)
.setTitle("you lose her").setMessage("天涯何处无芳草,请大侠重新来过!")
.setIcon(R.drawable.saybyebye)
.create();
dialog2.show();}
}
就不会报错了,可以看代码的错误日志,会明确指出问题在哪里
自学的,有什么低级错误也请大家不吝赐教。