iT邦幫忙

0

JAVA寫的安卓猜數字遊戲沒有動作

Tzu 2020-12-04 01:00:441151 瀏覽

各位大大好:

知道JAVA寫的安卓猜數字遊戲是國民題:
但是怎麼樣都不無法讓編輯器自動產生
num = (EditText)this.findViewById(R.id.txtnum);
btn =(Button)this.findViewById(R.id.btn_chk);

中的(EditText)和(Button),用手打上也不會動
我想這個就是我介面做好也沒有動作的原因吧

不知道是不是哪裡沒弄好呢?
謝謝各位大大

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <TextView
            android:id="@+id/textView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="猜數字遊戲-請輸入任一數字"
            android:textSize="36sp" />

        <EditText
            android:id="@+id/txtnum"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="textPersonName" />

        <Button
            android:id="@+id/btn_chk"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="check" />
    </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

package com.guessnumber.myapplication2;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import java.util.Random;

public class MainActivity extends AppCompatActivity {

    EditText num;
    Button btn;
    int answer=0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        num =this.findViewById(R.id.txtnum);
        btn =this.findViewById(R.id.btn_chk);
        Random r=new Random();
        answer=r.nextInt(50);

    }
    public void checkAnswer(View view) {
        String s1 = num.getText().toString();
        int n1 = Integer.parseInt(s1);
        String msg;
        if (n1 == answer) {
            msg = "你贏了";
            btn.setEnabled(false);
        } else if (n1 > answer) {
            msg = "你猜的數字太大了";
        } else {
            msg = "你猜的數字太小了";
        }
        Toast.makeText(this,msg,Toast.LENGTH_LONG).show();
    }
}


https://ithelp.ithome.com.tw/upload/images/20201204/20119035pgfEuQ9Y9R.png

https://ithelp.ithome.com.tw/upload/images/20201204/20119035Ny0xqOkkgi.png

2 個回答

0
神威
iT邦新手 1 級 ‧ 2020-12-04 09:01:09
最佳解答
   btn.setOnClickListener(cbtn);
   
private Button.OnClickListener cbtn=new Button.OnClickListener(){
        @Override
        public void onClick(View v) {
            checkAnswer();//你的判斷
        }
    };
1
wrxue
iT邦研究生 3 級 ‧ 2020-12-04 08:02:44

你要讓button有在聽啊!

setOnClickListener

參考 Android: How to add a click listener to a Button (action listener)

這是基礎中的基礎,可以先跟著網路上範例學一次整個流程有個概念

Tzu iT邦新手 3 級 ‧ 2020-12-04 20:24:31 檢舉

謝謝.其實您答的也很好 但是樓下的比較多code/images/emoticon/emoticon02.gif

wrxue iT邦研究生 3 級 ‧ 2020-12-05 08:12:04 檢舉

Fine

我要發表回答

立即登入回答