KotlinでAndroidアプリを作っているのですが、待機処理について教えていただきたいです。
一定時間処理を停止しTextViewを更新を3回ほど繰り返した後、画面遷移したいのですが、
うまくできません。何かいい方法はありませんか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
どこからどこまで説明しなければならないのかわからないので、大雑把にですが「1秒ごとに3回TextViewを描画した後にSubActivityに遷移する」というコードを書いてみました。不明な点はコメントでお尋ねください。
class MainActivity : AppCompatActivity() { internal var mHandler = Handler() internal var mCounter: Int = 0 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val textView = findViewById<TextView>(R.id.textView1) textView.text = "" // onCreateのようなライフサイクルメソッドの中で時間のかかる処理を記述すると // アプリが落ちるので、そうした処理は別スレッドで行う val thread = Thread(Runnable { try { mCounter = 0 while (mCounter < 3) { // Threadによる処理の中ではUIを操作することができないので、 // Handlerを用いてUIスレッドに行わせる処理を記述する mHandler.post { // この部分はUIスレッドで動作する textView.text = (mCounter + 1).toString() } // ここで時間稼ぎ Thread.sleep(1000) mCounter++ } // 繰り返しが終わったところで次のActivityに遷移する val intent = Intent(this@MainActivity, SubActivity::class.java) startActivity(intent) } catch (e: InterruptedException) { e.printStackTrace() } }) thread.start() } }
投稿2017/09/26 12:53
総合スコア6768
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。