## 実現したいこと
android studioでspinnerをつかって項目を選択,選択された項目をマテリアルデザインのTextfieldにsetTextしたいと考えています.
発生している問題
spinnerにsetOnItemSelectedListenerを設定しましたが,クリック時に特に反応がありませんでした.Logもでないためクリック時の処理ができていないのだと思います.どなたか原因のわかる方よろしくお願いいたします.
コード
元のコードが長かったため,明らかに関係がない箇所は省きました.
kotlin
1package com.example.appdoonelist 2 3import android.os.Bundle 4import android.util.Log 5import android.view.LayoutInflater 6import android.view.View 7import android.view.ViewGroup 8import android.widget.* 9import android.widget.AdapterView.OnItemLongClickListener 10import androidx.fragment.app.Fragment 11import androidx.lifecycle.ViewModelProviders 12import androidx.navigation.fragment.findNavController 13import com.google.android.material.datepicker.MaterialDatePicker 14import com.google.android.material.dialog.MaterialAlertDialogBuilder 15import com.google.android.material.floatingactionbutton.FloatingActionButton 16import com.google.android.material.textfield.TextInputEditText 17import java.text.SimpleDateFormat 18import java.util.* 19 20 21class DoneSecondFragment : Fragment() { 22 23 private val menuItems = mutableListOf<String>() 24 25 override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { 26 27 val view = inflater.inflate(R.layout.fragment_done_second, container, false) 28 29 30 val commentView = view.findViewById<TextInputEditText>(R.id.commentcontainer) 31 val dateView = view.findViewById<TextInputEditText>(R.id.datecontainer) 32 val categoryView = view.findViewById<TextInputEditText>(R.id.categorycontainer) 33 34 val viewModel: viewModel? = activity?.let { ViewModelProviders.of(it).get(viewModel::class.java) } 35 if (viewModel?.sameActivity == 0) { 36 commentView.setText(viewModel.comment) 37 dateView.setText((viewModel.date)) 38 categoryView.setText((viewModel.category)) 39 40 } 41 42 43// カテゴリメニュー 44 45//質問該当箇所********************* 46 val categorySpinner = view?.findViewById<Spinner>(R.id.categorymenu) 47 val adapter = ArrayAdapter(requireContext(), R.layout.custom_spinner_item, menuItems) 48 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) 49 categorySpinner?.adapter = adapter 50 51 52 val categoryContainer = view?.findViewById<TextInputEditText>(R.id.categorycontainer) 53 54 categorySpinner?.onItemSelectedListener = object :AdapterView.OnItemSelectedListener{ 55 override fun onItemSelected(parent: AdapterView<*>?, view: View, position: Int, id: Long) { 56 Log.e("select","success!!!") 57 val selectedItem = categorySpinner?.selectedItem as String 58 categoryContainer?.setText(selectedItem) 59 } 60 61 override fun onNothingSelected(parent: AdapterView<*>?) { } 62 } 63 CategoryCreate() 64 65//*********************************** 66 67// ダイアログ 68 val fab = view.findViewById<FloatingActionButton>(R.id.floatingAddButton) 69 fab.setOnClickListener(NewCategoryListener()) 70 71 return view 72 } 73 74 75 76 private inner class NewCategoryListener : View.OnClickListener { 77 val editText = EditText(context) 78 79 override fun onClick(v: View?) { 80// Edittextを二回目にセットするときのためにremoveしている.(二回addボタンを押したとき) 81 if (editText.parent != null) { 82 val parent = editText.parent as ViewGroup 83 parent.removeView(editText) 84 } 85 86 MaterialAlertDialogBuilder(requireContext()) 87 .setTitle(resources.getString(R.string.dialog_message)) 88 .setView(editText) 89 .setNegativeButton(resources.getString(R.string.Cancel)) { dialog, which -> } 90 .setPositiveButton(resources.getString(R.string.OK)) { dialog, which -> 91 92 val _helperCategory = activity?.let { CategoryDataHelper(it) } 93 val db = _helperCategory?.writableDatabase 94 95 val sqlInsert = "INSERT INTO categorylist(categoryitem) VALUES (?)" 96 val stmt = db?.compileStatement(sqlInsert) 97 stmt?.bindString(1, editText.text.toString()) 98 stmt?.executeInsert() 99 100 CategoryCreate() 101 } 102 103 .show() 104 105 } 106 107 } 108 109 110 111 private fun CategoryCreate(){ 112 113 menuItems.clear() 114 val _helperCategory = activity?.let { CategoryDataHelper(it) } 115 val db = _helperCategory?.writableDatabase 116 val sql = "SELECT * FROM categorylist" 117 val cursor = db?.rawQuery(sql, null) 118 if(cursor != null){ 119 while (cursor.moveToNext()){ 120 val index = cursor.getColumnIndex("categoryitem") 121 val categoryItem = cursor.getString(index) 122 menuItems.add(categoryItem) 123 } 124 } 125 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。