마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

계산기 개발중 버튼클릭오류가 발생했어요

0 추천
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:tools="http://schemas.android.com/tools"  android:id="@+id/activity_button3_2"  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="com.example.notae.mapleguide.button3_2"> <TextView  android:text="계산기입니다. 반드시 차례대로 입력해주세요"  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:layout_alignParentTop="true"  android:layout_alignParentLeft="true"  android:layout_alignParentStart="true"  android:id="@+id/textView" /> <EditText  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:inputType="number"  android:ems="10"  android:id="@+id/editText3_1"  android:hint="1점"  android:layout_below="@+id/textView"  android:layout_alignParentLeft="true"  android:layout_alignParentStart="true" /> <EditText  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:inputType="number"  android:ems="10"  android:layout_below="@+id/editText3_1"  android:layout_alignRight="@+id/editText3_1"  android:layout_alignEnd="@+id/editText3_1"  android:id="@+id/editText3_2"  android:hint="2점수"  android:layout_alignParentLeft="true"  android:layout_alignParentStart="true" /> <EditText  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:inputType="number"  android:ems="10"  android:layout_below="@+id/editText3_2"  android:layout_alignParentLeft="true"  android:layout_alignParentStart="true"  android:id="@+id/editText3_3"  android:hint="나눌횟수 최대9회"  android:layout_alignParentRight="true"  android:layout_alignParentEnd="true" /> <Button  android:text="Button"  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:layout_below="@+id/editText3_2"  android:layout_alignParentLeft="true"  android:layout_alignParentStart="true"  android:layout_marginTop="35dp"  android:id="@+id/button3_2_1"  android:onClick="button3_2_1" /> <TextView  android:text="결과값:"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:layout_below="@+id/button3_2_1"  android:layout_alignParentLeft="true"  android:layout_alignParentStart="true"  android:id="@+id/textView4" /> <TextView  android:text="0"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:layout_alignBottom="@+id/textView4"  android:layout_toRightOf="@+id/textView4"  android:layout_toEndOf="@+id/textView4"  android:id="@+id/textView3_2" /> <TextView  android:text=""  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:layout_below="@+id/textView4"  android:layout_alignParentLeft="true"  android:layout_alignParentStart="true"  android:layout_marginTop="21dp"  android:id="@+id/textView6" /> </RelativeLayout> 
package com.example.notae.mapleguide;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class button3_2 extends AppCompatActivity {
    EditText edit1,edit2,edit3;
    Button btnadd;
    TextView textResult;
    String num1,num2,num3;
    Integer result ,result2;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_button3_2);

        edit1 =(EditText)findViewById(R.id.editText3_1);
        edit2 =(EditText)findViewById(R.id.editText3_2);
        edit3 =(EditText)findViewById(R.id.editText3_3);
        btnadd =(Button)findViewById(R.id.button3_2_1);
        textResult =(TextView)findViewById(R.id.textView3_2);

        btnadd.setOnTouchListener(new View.OnTouchListener() {



            public boolean onTouch(View arg0, MotionEvent arg1) {

                num1 = edit1.getText().toString();

                num2 = edit2.getText().toString();

                num3 = edit3.getText().toString();


                result =Integer.parseInt(num1) - Integer.parseInt(num2);
                result2 = result /Integer.parseInt(num3);
                textResult.setText("계산결과 : "+result2.toString());
                return false;

            }

        });




    }
}
tiny11111 (780 포인트) 님이 2016년 11월 18일 질문

2개의 답변

0 추천
 
채택된 답변
num1, num2, num3 에 숫자형식이 아닌 값이 있을때 오류가 발생할 수 있고,

num3 에 0 이 입력되어 있으면 역시 에러가 발생할 수 있네요..

 

강제종료 될 때 에러로그 나올 것입니다.

로그캣에 에러로 필터링해서 보시면 바로 어디가 문제인지 아실 것입니다.

 

추가적으로 위에 분이 말씀하신 것처럼 OnClickListener 을 사용하시기 바랍니다.

OnTouch 는 터치한 좌표값을 이용해 그림판을 만들거나 스크롤 같은 것을 계산할 때 사용됩니다.
바램 (19,650 포인트) 님이 2016년 11월 18일 답변
tiny11111님이 2016년 11월 30일 채택됨
0 추천
에러 로그도 올려주실수 있을까요

그리고 버튼은 온터치보다 온클릭리스너를 사용하시는게..
익명사용자 님이 2016년 11월 18일 답변
에러 로그 없이 그냥 강제종료가 됩니다.. 값은 나와요
...