kotlinアンドロイド開発:fragmentがactivityにデータをhandlerで伝達し、コールバック方法を設定する


Activityからfragmentへの転送が便利で、直接使用します.
 fg.arguments = arguments

fragmentからactivityにデータを渡す方法を見てみましょう.
たとえば、ViewPageにはいくつかのfragmentが設定されています.fragmentには、viewPageが存在するactivityに関連する現在のfgの下にマークされているボタンがあり、現在のfgを削除します.
ここではhandlerを使用して情報をコミットするとactivityはすぐにUIを更新します
まずfgにインタフェースを書きます
interface Callbacks{

        fun onRemove(position:Int){

        }
    }

インタフェースをactivityで実装しましょう.実装されていない場合は、例外が投げ出されます.ここで、fgにロードするときに自動的に呼び出されるattachメソッドがあります.
override fun onAttach(context: Context?) {
        if(context !is Callbacks){
            throw IllegalStateException(" ")
        }
        super.onAttach(context)
        mcallbacks = context

    }

次に、fgのボタンにリスナーを追加し、このメソッドを呼び出します.
  mcallbacks!!.onRemove(position)

 
今は空いている方法です.
私たちはactivityで以下を実現します.
ここでは、fgからの下付きスケールを受信することを示します.
ここでfgから渡された下付き文字を受信します.
メインアクティブなhandlerでは下付き文字を受信できます
// , 
    override fun onRemove(position:Int) {

        val msg  = Message()
        msg.what = 1
        msg.arg1 = position
        handle?.sendMessage(msg)
        Log.d("callback:",msg.what.toString())

    }

メインアクティビティのhandlerを見てください:受信はmsgです.whatの値.
 ···1->{

                        list_fg.removeAt(msg.arg1)
                        Log.d("msg:",msg.arg1.toString())
                        iwh_view_page_adapter.notifyDataSetChanged()
                    }···

下付き文字を受信したら、アダプタの更新を通知します.