0

私は onKeyDown メソッドのこのコードを持っています:

 @Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
     if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) 
    { 
           int index = seekbar.getProgress(); 
           seekbar.setProgress(index + 1); 
           return true; 
    } else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)
     {
           int index = seekbar.getProgress(); 
           seekbar.setProgress(index - 1); 
           return true; 
    }
     return super.onKeyDown(keyCode, event); 
    }

AsyncTask問題は、これを, onで実行したいということであり、 postExecuterunOnUiThread 内で考えていますが、よくわかりません。

これを行うためのアイデアや提案はありますか?

ありがとう!

編集:

AsynTask の postExecute で作成および表示されるダイアログに seekBar があり、次のようにシークバーの親指の位置を更新する必要があります:ユーザーがデバイスのボリューム キーを押したときにシークバーの親指の位置が変わる

4

3 に答える 3

0
 class ABC {

        Context mContext;

        ABC(Context c)
        {
        mContext=c; 
        }


        public void launchIntent() {
           CurrentClass.this.runOnUiThread(new Runnable() {
              @Override
              public void run() {


                call your method stub here
                } 
            }
           });
        }
     }
于 2012-07-12T11:22:24.853 に答える
0

ブール変数を取る

boolean myboolean=false;

次に、この変数を「true」にしますpostExecute()

onKeyDown()メソッドを次のように編集します

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(myboolean)
    {
        if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) 
        { 
            int index = seekbar.getProgress(); 
            seekbar.setProgress(index + 1); 
            return true; 
        } 
        else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)
        {
            int index = seekbar.getProgress(); 
            seekbar.setProgress(index - 1); 
            return true; 
        }
    }
    return super.onKeyDown(keyCode, event); 
}
于 2012-07-12T11:18:45.347 に答える
0

postExecuterunOnUiThreadUI要素を更新する必要はありませんpostExecute

詳細については、これをお読みください。

于 2012-07-12T10:41:15.053 に答える