如何验证字符串作为用户输入(从键盘)和显示"正确答案"用吐司?

时间:2015-08-28 20:47:00

标签: java android

我正在开发一个简单的游戏,在"纯文本视图"并且用户需要使用" EditText"中的键盘来提供答案。并按下检查"按钮"打字后...然后一个"正确答案"如果答案正确或答案错误,应该在吐司屏幕上显示"错误的答案。我是初学者,所以详细的答案真的很有帮助。谢谢。

这是我的主要活动.Java:

package com.example.laxmanaryal.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends AppCompatActivity {

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

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}
}

这里有activity_main.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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="What has 88 keys but cannot open a single door?"
    android:id="@+id/textView1"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:textSize="40dp" />

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/editText1"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    android:width="255dp" />

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Check"
    android:id="@+id/button"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="71dp" />

1 个答案:

答案 0 :(得分:1)

首先,您必须在Button上声明EditTextMainActivity,请执行以下操作。

Button button;
EditText edittext;

然后在onCreate()内,您需要从EditTextButton获取视图,因此您必须按照以下步骤操作:

button = (Button)findViewById(R.id.button); //R.id.button is the id on your xml
edittext = (EditText)findViewById(R.id.editText1); //this is the EditText id

哦等等,我已经再次阅读了这个问题而忘记了一些内容,只需添加你的xml:

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="What's 2x2?" <!-- This is the question-->
android:layout_gravity="center" />

然后,下一步是在Button上设置onClickListener(),这样您就可以在用户点击时获取该事件。你可以这样做:

button.setOnClickListener(new View.OnClickListener() {
 public void onClick(View v) {
   // Perform action on click 
   //Here you must get the text on your EditText
   String Answer = (String) edittext.getText().toString(); //here you have the text typed by the user
   //You can make an if statement to check if it's correct or not 
   if(Answer=="4"){
        //Create a Toast because it's correct
        Toast.makeText(MainACtivity.this, "Correct!",
   Toast.LENGTH_LONG).show();
    }
    else{
       //It's not the correct answer
       Toast.makeText(MainACtivity.this, "FAAAAAAAAIL!",
   Toast.LENGTH_LONG).show();
   }
 }
});

这只是你可以做到的一个例子,如果你想改进它,就自己做吧。

正如StackOverflow所说

  

要求提供家庭作业帮助的问题必须包括迄今为止为解决问题而完成的工作的摘要,以及对解决问题的难度的描述。

您应该Learn Android Basics了解Android。

快乐编码:)