qq_22091321
fuda9527
采纳率100%
2017-07-19 07:36

编译能通过,为什么在手机上运行会直接闪退呢

已采纳

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>



  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • qq_35366908 liuAsang 4年前

    图片说明

    你在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();}
    }

    就不会报错了,可以看代码的错误日志,会明确指出问题在哪里

    点赞 1 评论 复制链接分享
  • qq_22091321 fuda9527 4年前

    自学的,有什么低级错误也请大家不吝赐教。

    点赞 评论 复制链接分享