我必须实现一个类的返回方法。所以结构很简单
public boolean yesNo(String message){
//return something
}
这里的问题是有一个 EditText 对象和一个 Button,我想根据用户在 EditText 中输入的答案返回一个 boolean 值。因此,我很自然地必须等待用户编写并在完成后单击按钮。我已经尝试在方法内设置 onClicklistener,但随后我将无法将任何内容传递给外部方法。
我知道在android中一切都是异步的,所以我不应该等待用户做某事,但在这种情况下我没有其他想法。另外仅供引用,我正在实现的方法是 Jsch 库的 UserInfo 类。据我了解,这个 UserInfo 是为用户交互而设计的,所以我认为它会以某种方式通过调用 yesNo 方法来管理“提示”用户,然后“等待”用户使用react。有任何想法吗?另外,如果有人向我解释我的逻辑是否有错误,我会很高兴。我对使用 AsynTask 或 runnables 不太有信心,但我认为这与此有关。
The only available documentation of UserInfo class
非常感谢!
编辑:到目前为止的代码:
public static class MyUserInfo implements UserInfo, UIKeyboardInteractive {
public Button goButton = (Button) MainActivity.contentView.findViewById(R.id.startSSH);
public EditText editText = (EditText) MainActivity.contentView.findViewById(R.id.commandSSH);
public boolean yesNo = false;
public boolean promptYesNo(String str) {
goButton.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
String answer = editText.getText().toString();
if(answer.equals("yes")){yesNo = true;}
else {yesNo = false;}
}
});
return yesNo;
}
}
最佳答案
当屏幕初始化时,例如在 onCreate
生命周期方法中,在 Button
上放置一个 OnClickListener
。在监听器的 onClick
方法中,您可以使用 EditText
内容调用 yesNo
方法。
在屏幕的 onCreate
方法中尝试这种方式:
mButton = (Button)findViewById(R.id.my_button);
mEditText = (EditText) findViewById(R.id.my_edittext);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
yesNo(mEditText.getText().toString());
}
});
关于java - Android:WAITING按钮点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36646223/