rokkonet

PC・Androidソフトウェア・アプリの開発・使い方に関するメモ

android開発 カンマ区切りの1行の文字列データをダイアログ上にリスト表示する

2020 Feb. 05.

カンマ区切りの1行の文字列データをダイアログ上にリスト表示するkotlinコード例

・カンマ区切り文字列をListに変換
・システムに組み込まれた"android.R.layout.simple_list_item_1"を介して、ListをArrayAdapterに関連付ける
・ArrayAdapterをダイアログ上のレイアウト内のListViewにセットする
class MyListDataDialogFragment: DialogFragment(){

    var CommaSeparatedStr: String = "ab,cd,ef,gh,ijk"
        // The data to be displayed in ListView

    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {

        // get Dialog
        val builder = AlertDialog.Builder(activity)
        val inflater = requireActivity().layoutInflater
        val myDialogView = inflater.inflate(R.layout.my_list, null)

        // arrange data
        if (CommaSeparatedStr.isEmpty() ) {
            CommaSeparatedStr = getString(R.string.NoData)
                // "R.string.NoHistory" has "No Data" message.
        }
        CommaSeparatedStr = CommaSeparatedStr.removeSuffix(",")
        val myDataList = CommaSeparatedStr.split(",")

        // myDataListをArrayAdapterに関連づける
        val myAdapter =
            ArrayAdapter(this.requireContext(), android.R.layout.simple_list_item_1, myDataList)

        // ArrayAdapterをダイアログ上のレイアウト内のListViewにセットする
        val myListView = myDialogView.findViewById<ListView>(R.id.listViewFiles)
        myListView.adapter = myAdapter

        // display dialog
        builder.setView(myDialogView)
            .setTitle("My Data List")
            .setPositiveButton("OK") { _, _ ->
                // nothing is done
            }
        return builder.create()
    }
}