右になるまで、私はホストアプリのために提供するAndroidのファイルビューアを書いていますが起こってからUIスレッドを防ぐことができ、私たちのビューアは、フラグメントであり、ホストアプリ利用のnewInstanceは、私たちのフラグメントを使用します。いくつかのコードは以下の通りです:ダイアログ入力されたパスワードが正しいとして、showPasswordInputDialog後文を実行したときはどのように私はパスワード入力が
newInstance() {
......
openfile();
return fragment;
}
openfile() {
......
if(ispasswordfile) {
showPasswordInputDialog;
mpassword = .;
mpagecount = ..;
......;
return errorcode;
} else {
.......
}
}
showPasswordDialog() {
......
dialog.show();
EditText edittext = dialog.findViewById(...);
edittext.addListener(){
override
public boolean action....{
.......
if(password is right) {
.....
}
}
};
私の質問です。これらのコードはすべてUIスレッドで実行されており、パスワードが間違っているとリスナーがUIを変更する必要があるため、UIスレッドを一時停止できません。では、showPasswordInputDialogの間にバリアを設定する方法はありますか。およびmpassword =。パスワードが正しければ、バリアを削除してUIスレッドを停止させます。 whileループを使用しようとすると動作しません。また、パスワードが正しいときにリスナーにアクションを追加することはできません。なぜなら、newInstanceによってフラグメントを返すためです。
これは私に長い時間を気にしている、とヘルプは歓迎です!
私の質問に解決策はありませんか? –
@shaopingwang:正しい。 AndroidのウィジェットベースのUIフレームワークは、最新のUIフレームワークのように、イベント駆動型の仕組みで動作します。 – CommonsWare
私は入力が正しいと思って、それから後の仕事は普通なので、それはどのように他のアンドロイドアプリで実装されますか? –