Я новичок в Android и мне сложно понять некоторые понятия.
У меня есть задание по настройке, в котором есть интерактивные линейные макеты.
Каждый кликабельный линейный макет содержит Предмет и Подпункт.
Я хочу, чтобы этот подпункт был изменяемым, хотя для него были установлены некоторые значения по умолчанию, пока он не был изменен.
<ScrollView
<LinearLayout
android:orientation="vertical" >
<LinearLayout"
android:orientation="horizontal"
android:clickable="true" >
<TextView
<!-- this is Item -->
android:text="@string/settings_enabled_days"/>
<!-- android:text="Enabled Days" -->
<TextView
<!-- this is sub Item -->
android:text="@string/settings_enabled_days_value" />
<!-- android:text="Mon, Tue, Wed, Fri, Sat" -->
</LinearLayout>
Теперь у меня есть следующий код активности настроек, я поставил свои сомнения в комментариях:
class SettingsActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_settings)
val enabledDays = findViewById<LinearLayout>(R.id.settings_enabled_days)
enabledDays.setOnClickListener { showEnabledDaysDialog() }
}
private fun showEnabledDaysDialog() {
// I have declared arrayChecked to make the app working
// But I want it to be stored somewhere so that I can modify its default values later
val arrayChecked = booleanArrayOf(false, true, true, true, true, true, false)
val selectedDays = ArrayList<Int>()
val enabledDaysBuilder = AlertDialog.Builder(this)
enabledDaysBuilder.setTitle(R.string.settings_enabled_days)
enabledDaysBuilder.setMultiChoiceItems(R.array.days_long, arrayChecked) { _, which, isChecked ->
if (isChecked)
selectedDays.add(which)
else if (selectedDays.contains(which))
selectedDays.remove(Integer.valueOf(which))
}
enabledDaysBuilder.setPositiveButton(R.string.dialog_ok) { dialog, which ->
// I don't know what to do here
// I want selectedDays to modify the default values
// I also don't know where to store those default values
}
enabledDaysBuilder.setNegativeButton(R.string.dialog_cancel) { _, _ ->
// do not modify anything
}
val enabledDaysDialog = enabledDaysBuilder.create()
enabledDaysDialog.show()
}
}
Это массив days_long в array.xml file
<string-array name="days_long">
<item>Sunday</item>
<item>Monday</item>
<item>Tuesday</item>
<item>Wednesday</item>
<item>Thursday</item>
<item>Friday</item>
<item>Saturday</item>
</string-array>