0

setPressedをtrueに設定し、postDelay設定setPressedを数ティック後にfalseに設定して、キーストロークをシミュレートしようとしています。私の問題は、これを一度適用すると完全に機能することですが、複数の要素を含むリストを反復処理しようとすると、遅延が互いに重なり合うと思います。反復が速すぎます。解決策は、postDelayedよりも少し長くループの反復を遅らせることだと思いますが、これでもあまり成功していません。

public void myOnClickListener(View view) {

    switch (view.getId()) {

    case R.id.test:
        //adds two random digits to list
        addRandomDigits(2);

        int size = list.size();
        System.out.println("Size: " + size);
            tmpButton = map.get(list.get(list.size()-1));
            tmpButton.setPressed(true);
            tmpButton.postDelayed(new Runnable() {
                public void run() {
                    tmpButton.setPressed(false);
                }
            }, 200);

        Log.e("**droid", "Droid sequence: " + getArrayListAsString(list));
        break;

この解決策が最も効率的、論理的などであると思われない場合、私はどんな提案にも広くオープンです。前もって感謝します。

4

1 に答える 1

0

ループの代わりに、特定の期間の実行にTimerTaskクラスを使用することをお勧めします。

private class myLoop extends TimerTask
{
       public void run()
       {
           // Place your code here.

           addRandomDigits(2);

           int size = list.size();
           System.out.println("Size: " + size);
           tmpButton = map.get(list.get(list.size()-1));
           tmpButton.setPressed(true);
           tmpButton.setPressed(false);

          Log.e("**droid", "Droid sequence: " + getArrayListAsString(list));
          break;
       }
}

tmpButtonを静的にする必要があります。

于 2012-01-09T04:22:16.247 に答える