私はクラスのリターンメソッドを実装する必要があります。だから、構造がAndroid:ボタンをクリックするのを待つ
public boolean yesNo(String message){
//return something
}
のと同じくらい簡単ですここでの問題は、そこのEditTextオブジェクトとボタンがあると私はのEditTextでユーザーが入力した答えに応じて、ブール値を返したいということです。だから当然、私は彼が終了するときにユーザーがボタンをクリックして書くのを待つ必要があります。メソッド内でonClickListenerを設定しようとしましたが、外側のメソッドに何も渡せません。
私は、すべてが非同期であることを知っています。私はあなたが何かをするのを待つべきではありませんが、私は他のアイデアはありません。またFYIでは、実装しているメソッドはJschライブラリのUserInfoクラスのものです。私が理解したところでは、このUserInfoはユーザーとのやりとりのために設計されているので、yesNoメソッドを呼び出すことによってユーザーに「プロンプト」を管理し、ユーザーが反応するのを待っていると考えました。何か案は?私の論理に何らかの誤りがあると誰かが私に説明してくれれば嬉しいです。私はAsynTaskまたはrunnablesの使用には自信がありませんが、私はそれがこれと何か関係があると思います。
The only available documentation of UserInfo class
どうもありがとう!
EDIT:これまでのコード:
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;
}
}
はOnClickListenersのonClickメソッド内でクラスにパブリックthatsの文字列を設定しましたが、それは文字列が最終なければならないことを私に伝えます。しかし、最終的に私はそれを変更できません。なぜそれがonClickListenerで動作しなかったのかしかし、多分私は何かを逃した。何か案が? – Suppenkasper
あなたのコードを投稿してください –
ああ私の悪いです。私はYesNoメソッドの中でStringを宣言しました。 – Suppenkasper