teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

該当箇所と思われるコードの編集

2019/08/19 12:35

投稿

kitarou
kitarou

スコア8

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,6 @@
1
+ ```ここに言語を入力
2
+ コード
1
- Android Studio で、言語はKotlinを使用して開発をしています。
3
+ ```Android Studio で、言語はKotlinを使用して開発をしています。
2
4
  Listviewに配置したswitchの動きがリスナーでとれないので困っています。
3
5
  気づいたことなどありましたら、教えて頂けると幸いです。
4
6
 
@@ -43,49 +45,9 @@
43
45
 
44
46
  `
45
47
  }'`````````
46
- ここに言語を入力
47
- Kotlin これがLIstAdapterです。
48
- ここに言語を入力
49
- ```
50
- class MenuItem_switchAdapter(val context: Context, val items: List<MenuItem_switch>): BaseAdapter() {
51
- val layoutInflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
52
48
 
53
- override fun getCount(): Int {
54
- return items.count()
55
- }
56
49
 
57
- override fun getItem(position: Int): MenuItem_switch {
58
- return items[position]
59
- }
60
50
 
61
- override fun getItemId(position: Int): Long {
62
- return position.toLong()
63
- }
64
-
65
- override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
66
-
67
- val view_switch = layoutInflater.inflate(R.layout.menu_item2,parent,false)
68
-
69
- view_switch.title.text = items[position].title2
70
- view_switch.switch_1.setOnCheckedChangeListener{ buttonView, isChecked ->
71
- if (isChecked){
72
- Toast.makeText(context, "ON: ${items[position].title2}", Toast.LENGTH_SHORT).show()
73
-
74
- }else{
75
- Toast.makeText(context, "OFF: ${items[position].title2}", Toast.LENGTH_SHORT).show()
76
-
77
- }
78
- }
79
-
80
- return view_switch
81
-
82
-
83
- }
84
- ```
85
-
86
-
87
-
88
-
89
51
  これがListの1行レイアウトです。
90
52
  ```
91
53
  <?xml version="1.0" encoding="utf-8"?>
@@ -116,27 +78,153 @@
116
78
  </LinearLayout>
117
79
  ```
118
80
 
119
- ここがlistを表示するActivityの onCreate() に記述したListViewのタップメソッドです。
81
+ ここがlistを表示するActivityの 全文です。
82
+
120
83
  本来setOnItemClickListener にタップされた時の動きをかくと思うのですが、switchだとadapterに書いている記事を見かけたので、同じくそちらに書いているのですが間違えているでしょうか。
121
84
 
122
85
  ```ここに言語を入力
86
+ class Webview_indexActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelectedListener {
123
87
 
124
88
 
89
+
90
+
91
+
92
+
93
+ override fun onCreate(savedInstanceState: Bundle?) {
94
+ super.onCreate(savedInstanceState)
95
+ setContentView(R.layout.activity_webview_index)
96
+
97
+
98
+
99
+
100
+
101
+ val switch = Switch(this)
102
+
103
+
104
+ switch.setOnCheckedChangeListener({ button, isChecked ->
105
+
106
+ val text = if (isChecked) "checked" else "unchecked"
107
+ Toast.makeText(this, text, Toast.LENGTH_LONG).show()
108
+ })
109
+
110
+
111
+ //val switchmenu = nav_view.menu.findItem(R.id.navigation_notifications)
112
+ //
113
+ // switchmenu.actionView = switch
114
+
115
+
116
+
117
+
118
+
119
+
120
+ mutableListOf<MenuItem>()
121
+
122
+ val menuItem_right = mutableListOf<MenuItem>()
123
+ menuItem_right.add(MenuItem("設定",R.drawable.button_category_clothes_icon))
124
+ menuItem_right.add(MenuItem("設定",R.drawable.button_category_food_icon))
125
+ menuItem_right.add(MenuItem("設定",R.drawable.button_category_hobby_icon))
126
+
127
+ nav_menu_items.adapter = MenuItemAdapter(this,menuItem_right)
128
+
129
+ nav_menu_items.setOnItemClickListener {parent, view, position, id ->
130
+
131
+ Toast.makeText(this, "Clicked: ${id}", Toast.LENGTH_SHORT).show()
132
+
133
+
134
+
135
+ drawer_layout.closeDrawer(Gravity.LEFT)
136
+ drawer_layout.closeDrawer(Gravity.RIGHT)
137
+
138
+ }
139
+
140
+ //左側の switchのlistの設定
141
+
125
- mutableListOf<MenuItem_switch>()
142
+ mutableListOf<MenuItem_switch>()
126
143
  val menuItem_left_switch = mutableListOf<MenuItem_switch>()
127
144
 
128
- menuItem_left_switch.add(MenuItem_switch("設定",switch_1))
145
+ menuItem_left_switch.add(MenuItem_switch("設定",switch))
129
- menuItem_left_switch.add(MenuItem_switch("設定",switch_1))
146
+ menuItem_left_switch.add(MenuItem_switch("設定",switch))
130
- menuItem_left_switch.add(MenuItem_switch("設定",switch_1))
147
+ menuItem_left_switch.add(MenuItem_switch("設定",switch))
131
148
 
132
149
  nav_menu_items_switch.setOnItemClickListener { parent, view, position, id ->
133
150
 
151
+ drawer_layout.closeDrawer(Gravity.LEFT)
152
+ drawer_layout.closeDrawer(Gravity.RIGHT)
134
153
 
154
+ }
135
155
 
156
+
157
+ //左側の通常のlistの設定
158
+ mutableListOf<MenuItem_normal>()
159
+ val menuItem_left_normal = mutableListOf<MenuItem_normal>()
160
+
161
+ menuItem_left_normal.add(MenuItem_normal("設定",R.drawable.button_category_clothes_icon))
162
+ menuItem_left_normal.add(MenuItem_normal("設定",R.drawable.button_category_clothes_icon))
163
+ menuItem_left_normal.add(MenuItem_normal("設定",R.drawable.button_category_clothes_icon))
164
+
165
+ nav_menu_items_switch.setOnItemClickListener { parent, view, position, id ->
166
+
167
+ Toast.makeText(this, "Clicked: ${id}", Toast.LENGTH_SHORT).show()
168
+
136
169
  drawer_layout.closeDrawer(Gravity.LEFT)
137
170
  drawer_layout.closeDrawer(Gravity.RIGHT)
138
171
 
139
172
  }
173
+
174
+
175
+ nav_view.setNavigationItemSelectedListener(this)
176
+ nav_view_right.setNavigationItemSelectedListener(this)
177
+
178
+
179
+
180
+ right_btn.setOnClickListener {
181
+ nav_view_right.setBackgroundResource(R.drawable.pic_rightbar_bg2)
182
+ this.drawer_layout.openDrawer(nav_view_right)
183
+
184
+ }
185
+
186
+ menuBtn.setOnClickListener {
187
+ nav_view.setBackgroundResource(R.drawable.pic_category_bg)
188
+ nav_menu_items_switch.adapter = MenuItem_switchAdapter(this,menuItem_left_switch)
189
+
190
+ this.drawer_layout.openDrawer(nav_view)
191
+
192
+
193
+ }
194
+
195
+ menu2Btn.setOnClickListener {
196
+ nav_view.setBackgroundResource(R.drawable.pic_detailed_search_bg)
197
+ nav_menu_items_switch.adapter = MenuItem_normalAdapter(this,menuItem_left_normal)
198
+ this.drawer_layout.openDrawer(nav_view)
199
+ }
200
+ }
201
+
202
+ override fun onNavigationItemSelected(item: android.view.MenuItem): Boolean {
203
+
204
+ when (item.itemId) {
205
+ R.id.navigation_home -> Toast.makeText(this,"テスト表示1",Toast.LENGTH_LONG).show()
206
+ R.id.navigation_dashboard -> Toast.makeText(this,"テスト表示2",Toast.LENGTH_LONG).show()
207
+ R.id.navigation_notifications -> Toast.makeText(this,"テスト表示3",Toast.LENGTH_LONG).show()
208
+ R.id.config1 -> Toast.makeText(this,"テスト表示4",Toast.LENGTH_LONG).show()
209
+ R.id.config2 -> Toast.makeText(this,"テスト表示5",Toast.LENGTH_LONG).show()
210
+ }
211
+
212
+ drawer_layout.closeDrawer(Gravity.LEFT)
213
+ drawer_layout.closeDrawer(Gravity.RIGHT)
214
+ return true
215
+
216
+ }
217
+
218
+ override fun onCreateOptionsMenu(menu: Menu?): Boolean {
219
+
220
+ menuInflater.inflate(R.menu.bottom_navigation_item,menu)
221
+ return super.onCreateOptionsMenu(menu)
222
+ }
223
+
224
+
225
+ }
226
+
227
+
140
228
  ```
141
229
 
142
230
  1行のモデルクラス
@@ -152,5 +240,49 @@
152
240
  )
153
241
 
154
242
 
243
+ ```
155
244
 
245
+
246
+
247
+
248
+ adapterの全文
249
+ ```
250
+ class MenuItem_switchAdapter(val context: Context, val items: List<MenuItem_switch>): BaseAdapter() {
251
+ val layoutInflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
252
+
253
+ override fun getCount(): Int {
254
+ return items.count()
255
+ }
256
+
257
+ override fun getItem(position: Int): MenuItem_switch {
258
+ return items[position]
259
+ }
260
+
261
+ override fun getItemId(position: Int): Long {
262
+ return position.toLong()
263
+ }
264
+
265
+
266
+
267
+ override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
268
+
269
+ val view_switch = layoutInflater.inflate(R.layout.menu_item2,parent,false)
270
+
271
+ view_switch.title.text = items[position].title2
272
+
273
+ view_switch.switch_1.setOnCheckedChangeListener{ buttonView, isChecked ->
274
+ if (isChecked){
275
+ Toast.makeText(context, "ON: $", Toast.LENGTH_SHORT).show()
276
+
277
+ }else{
278
+ Toast.makeText(context, "OFF: ${items[position].switch2}", Toast.LENGTH_SHORT).show()
279
+
280
+ }
281
+ }
282
+
283
+ return view_switch
284
+
285
+
286
+ }
287
+
156
288
  ```

1

必要なファイルの追加

2019/08/19 12:35

投稿

kitarou
kitarou

スコア8

title CHANGED
File without changes
body CHANGED
@@ -137,4 +137,20 @@
137
137
  drawer_layout.closeDrawer(Gravity.RIGHT)
138
138
 
139
139
  }
140
+ ```
141
+
142
+ 1行のモデルクラス
143
+
144
+ ```
145
+ import android.media.Image
146
+ import android.widget.ImageView
147
+ import android.widget.Switch
148
+
149
+ class MenuItem_switch (
150
+ val title2: String,
151
+ val switch2: Switch
152
+ )
153
+
154
+
155
+
140
156
  ```