2016-12-07 2 views
0

右になるまで、私はホストアプリのために提供する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によってフラグメントを返すためです。

これは私に長い時間を気にしている、とヘルプは歓迎です!

答えて

0

showPasswordInputDialog間にバリアを設定する方法はありますか。およびmpassword =。

いいえ、ごめんなさい。

+0

私の質問に解決策はありませんか? –

+0

@shaopingwang:正しい。 AndroidのウィジェットベースのUIフレームワークは、最新のUIフレームワークのように、イベント駆動型の仕組みで動作します。 – CommonsWare

+0

私は入力が正しいと思って、それから後の仕事は普通なので、それはどのように他のアンドロイドアプリで実装されますか? –

0

if(password is right)ブロックで実行する必要がある作業を入れたり、パスワードが真であるかどうかを知るために何らかのフラグを使用してopenfile()に使用してください。

+0

はい、難しいことは、openfile()でタグを検出する方法ですが、私は使っていますが、スレッドをクラッシュさせます。 –

1

あなたはイベントとして実行をベースとすることを考える必要があります。だから、=

mpasswordを置かないでください。ショー]ダイアログ方法下記

。テキスト変更リスナーでは、それぞれの変更ごとに正しいパスワードかどうかをチェックするだけです。パスワードが正しい場合は、ダイアログを閉じてパスワードを設定してください。

if(password is right) { 
    mpassword = .; //Then continue your work from here or call other method. 
} 

メインスレッドをブロックする必要はありません。

、私は質問を誤解している場合、私に教えてください。

+0

パスワードが正しいときにリスナー関数にmpasswordを入れてくださいが、パスワードが正しいことをホストアプリケーションに通知するコールバック関数を呼び出すと、どうやってそれを検出してフラグメントを再度開くことができますか? –

+0

フラグメントを再オープンするとどういう意味ですか、どのフラグメント、同じフラグメントでパスワードダイアログを開くのですか?または同じ活動の他の断片、あなたは私にアーキテクチャを明確に説明できますか? –

関連する問題