0

スクロールビュー内のテキストビューを使用して、実行可能なタイプライター効果を作成しています。

これは私がしたことです...

    final ScrollView sv = new ScrollView(this);
    sv.setLayoutParams(new LinearLayout.LayoutParams((int)display.getWidth()/2, (int)((display.getHeight()/4))*3));
    sv.setPadding(0, px2DP(10), px2DP(10), px2DP(10));

    final CharSequence text = getResources().getText(R.string.longstring);

    final TextView content = new TextView(this);
    content.setBackgroundColor(getResources().getColor(R.color.Black));
    content.setTextColor(getResources().getColor(R.color.White));
    content.setTextSize(TypedValue.COMPLEX_UNIT_SP,20);
    content.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));

    sv.addView(content);

    content.postDelayed(new Runnable(){
        @Override
        public void run() {
            content.append(text.subSequence(0, index++));
            sv.fullScroll(View.FOCUS_DOWN);     
        }

    },70);

ブラックボックスのみが表示され、テキストは表示されません。

私は何が間違っているのですか?助けてください。

PS。私はすでに解決策を見つけました!

4

1 に答える 1

0

解決策が見つかりました。ハンドラー実行可能の概念を間違って使用しています。Jonasが指摘したことに基づいて、Runnableは1回だけ実行されます。したがって、ループが必要です。

このリンクで提案されているように: AndroidでRunnableスレッドを実行するにはどうすればよいですか?

答えは再帰に似ています。

とにかくみんなありがとう!Androidはとてもクールです。

于 2012-05-09T04:33:13.853 に答える