我遇到了我为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;
}
}
答案 0 :(得分:1)
为什么不在addTextChangedListener
对象上设置EditText
?
答案 1 :(得分:0)
怎么样:
if(textview != null || !textview.getText().equals(""))
{
MainActivity.in = input.getText().charAt(0);
}
如果点击它,你可以发出一个祝酒词,如果你想要它是空的。在if / else语句中。
答案 2 :(得分:0)
结帐ontextchangelistener。 您可以将此侦听器添加到edittext,然后在回调时添加您的代码。