import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView text;
String put_txt = "文字列を1文字ずつ表示する。";
String put_word = "";
String put_text = "";
int i =0;
private static int TIMEOUT_MESSAGE =1;
private static int interval =1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// テキストビュー
text = (TextView)findViewById(R.id.textview);
// ハンドラ実行
handler.sendEmptyMessage(TIMEOUT_MESSAGE);
}
// 文字列を一文字ずつ出力するハンドラ
private Handler handler = new Handler() {
@Override
public void dispatchMessage(Message msg) {
// 文字列を配列dataに1文字ずつセット
char data[] = put_txt.toCharArray();//(1)
if(i < data.length){//(2)
if (msg.what == TIMEOUT_MESSAGE) {
put_word = String.valueOf(data[i]);//(3)
put_text = put_text + put_word;//(4)
text.setText(put_text);//(5)
handler.sendEmptyMessageDelayed(TIMEOUT_MESSAGE,interval*50);(6)
i++;
}else{
super.dispatchMessage(msg);
}
}
}
};
}
また、パッケージ内res/layout/内のxmlに
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="" />
これを書かないとテキストビューの記述でエラーがでます。
以上。
赤文字部分の説明です。
文字列1文字ずつdataに入れていき(1)、その長さ文だけ繰り返します(2)。
そして最初の1文字をput_wordに取り出し(3)、表示させるテキストput_textに足し入れます(4)。
最後に足し入れたput_textをtextにセットし(5)、時間差で表示します(6)。