質問内容
android : バックグラウンドサービスクラス(android.app.Serviceを継承)上のArrayList型変数に格納されているデータをリサイクラービューに表示するにはどうしたらよいでしょうか?
宜しくお願い致します。
関連URL
https://developer.android.com/reference/android/app/Service#WhatIsAService
実装イメージ
サービス
kotlin
1class SocketService : Service() { 2 3 lateinit var chatTextList: ArrayList<ChatText> 4 5 init { 6 chatTextList = ArrayList() 7 } 8 9 override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { 10 ... 11 chatTextList.add(ChatText("text", "name", "111.111.111.111", Timestamp(System.currentTimeMillis()))) 12 ... 13 } 14 15 override fun onBind(intent: Intent?): IBinder? { 16 ... 17 } 18 19 override fun onUnbind(intent: Intent?): Boolean { 20 ... 21 } 22 23 override fun onRebind(intent: Intent?) { 24 ... 25 } 26 27 override fun onDestroy() { 28 ... 29 } 30 31 override fun onTaskRemoved(rootIntent: Intent?) { 32 super.onTaskRemoved(rootIntent) 33 stopSelf() 34 } 35 36 public fun connectP2pNetwork(address: String, name:String, status: String, memberCountText:String){ 37 } 38 public fun send(message: String) { 39 } 40 41} 42
サービス呼び出しと、リサイクラービューにArrayListをバインドしている部分(MainActivity)
kotlin
1 override fun onCreate(savedInstanceState: Bundle?) { 2 3 super.onCreate(savedInstanceState) 4 5 val adapter = ChatTextAdapter(chatTextList) ←ココ 参照の仕方が分かりません。 6 binding.chatRecyclerView.layoutManager = LinearLayoutManager(this) 7 binding.chatRecyclerView.adapter = adapter 8 9 10 val intent = Intent(this@MainActivity, SocketService::class.java) 11 if (Build.VERSION.SDK_INT >= 26) { 12 startForegroundService(intent) 13 } else { // Debug.print("SDK_INT < 26") 14 startService(intent) 15 } 16 17 } 18 19以上
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/06/14 07:44 編集
2022/06/14 07:42
2022/06/14 10:07
2022/06/14 11:28
2022/06/14 13:37