Android:如何等待来自editText的输入

时间:2013-11-25 20:06:33

标签: android loops android-edittext

我遇到了我为Android制作的刽子手游戏的问题。我已经为计算机制作了一个版本并使用了android版本的代码。我做了所有必要的更改以打印等。在android上的程序只是循环通过一切,直到你输了。如何让它在继续之前等待来自editText的输入?注意:如果需要,可以提供更多代码。

     package com.aimobile.hangman;

    import java.util.Arrays;
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;



    public class MainActivity extends Activity{

protected static char in;

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

    //gui

    final EditText input = (EditText) findViewById(R.id.input);
    EditText hang = (EditText) findViewById(R.id.hang);
    hang.setEnabled(false);
    Button guess = (Button) findViewById(R.id.guess);

    //Begin Hangman

    int nchar = 5;

    char[] word;
    word = new char[nchar];
    word[0] = 'h';
    word[1] = 'e';
    word[2] = 'l';
    word[3] = 'l';
    word[4] = 'o';

    char[] arinput;
    arinput = new char[nchar];
    arinput[0] = '*';
    arinput[1] = '*';
    arinput[2] = '*';
    arinput[3] = '*';
    arinput[4] = '*';

    int lives = 5;

    while (lives>0){


        hang.append("Enter leter:");

        guess.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                MainActivity.in = input.getText().charAt(0);

            }       

        });

        boolean wrong=true;

        for(int k=0; k<= nchar-1; k++){
            if(arinput[k]==in){
                hang.append("You already have this");
                wrong=false;
            }
            else if(word[k]==in){
                arinput[k]=in;
                wrong=false;

            }

        }
        hang.append(Arrays.toString(arinput));

        boolean finish=true;

        for(int k=0; k<= nchar-1; k++){

            if(word[k]!=arinput[k]){

                finish=false;

            }

        }

        if(finish){
            hang.append("You win");
            System.exit(0);
        }

        if(wrong){
            lives--;
        hang.append("You have "+ lives +" lives left");
        }
    }

    hang.append("You lose");

}

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

    }

3 个答案:

答案 0 :(得分:1)

为什么不在addTextChangedListener对象上设置EditText

Set addTextChangedListener in a function Android

答案 1 :(得分:0)

怎么样:

if(textview != null || !textview.getText().equals(""))
{
MainActivity.in = input.getText().charAt(0);
  }

如果点击它,你可以发出一个祝酒词,如果你想要它是空的。在if / else语句中。

答案 2 :(得分:0)

结帐ontextchangelistener。 您可以将此侦听器添加到edittext,然后在回调时添加您的代码。