我的目标是在用户点击它时更改TextView
的文本,并将其替换为用户输入的玩家名称。所以我添加了一个OnClickListener
。所以点击时我会提示Dialog
进行用户输入。
private void setPlayerName(TextView textView) {
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Title");
alert.setMessage("Enter Player1 Name");
// Set an EditText view to get user input
final EditText inputText = new EditText(this);
alert.setView(inputText);
alert.setPositiveButton("Ok", new inputclickListener(textView));
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.cancel();
}
});
alert.show();
}
现在,inputclickListener类的代码如下
class inputclickListener implements android.content.DialogInterface.OnClickListener {
TextView textView;
public inputclickListener(TextView textView){
this.textView = textView;
}
@Override
public void onClick(DialogInterface dialog, int which) {
//String value = inputText.getText().toString(); //Here I need reference to inputtext
if(value != null && value.length()>0) {
textView.setText(value);
}
}
}
正如inputclickListener
类中代码的注释中所提到的,我需要对inputText的引用,这是EditText
视图。我的问题是,如果我们引用它Dialog
(我认为这应该是Views / EditText父级,如果我错了,请纠正我),我怎样才能得到该引用?
答案 0 :(得分:1)
对于这种情况,我会为侦听器使用匿名类来加快编码速度。
private void setPlayerName(final TextView textView) {
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Title");
alert.setMessage("Enter Player1 Name");
// Set an EditText view to get user input
final EditText inputText = new EditText(this);
alert.setView(inputText);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int whichButton) {
final String value = inputText.getText().toString();
if(value != null && value.length()>0) {
textView.setText(value);
}
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.cancel();
}
});
alert.show();
}
答案 1 :(得分:0)
将TextWatcher
添加到addTextChangedListener
的{{1}},并将您在inputText
上收到的任何数据传递给onTextChanged
对象。