3

私は Android の初心者で、文字列の arrayList からテキストを循環させて、textswitcher に表示しようとしています。テキストを2秒ごとに変更したい。このSOの質問をガイドとして使用しましたが、ボタンでテキストを切り替えるのに問題はありません。ただし、2 秒の遅延で for ループを使用してテキストを循環しようとすると、arrayList の最初のテキストのみが表示されます。一時停止してループを継続的に実行するにはどうすればよいですか? どんな助けでも大歓迎です。

私のコード;

private void updateCounter()
{   

    try{
    for (int i=0; i< CoinShowReader.tickercontent.size(); i++){                             

        mHandler.postDelayed(new Runnable() { 
             public void run() { 
                m_switcher.setText((CoinShowReader.tickercontent.get(CoinShowReader.m_counter)));               
                CoinShowReader.m_counter++;
             } 
        }, 2000);

        }

    }catch(Exception e){
        e.printStackTrace();    
    }
}  
4

1 に答える 1

4

ループを削除します。必要ありません。次のように、ハンドラー内で別の実行可能ファイルをスケジュールするだけです。

void updateTextView(){
        m_switcher.setText((CoinShowReader.tickercontent.get(CoinShowReader.m_counter)));               
        CoinShowReader.m_counter++;

            mHandler.postDelayed(new Runnable() { 
                             public void run() { 
                               updateTextView(); 
        } } ,2000);  }
    }

そうすれば、次の通話をスケジュールするためのすべての通話updateTextView()など...

注: 無限大であるため、その動作を停止するトリガーを挿入することを忘れないでください。

于 2013-02-05T13:47:28.987 に答える