нажмите кнопку сохранить общиеПреференции - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь реализовать кнопку сохранения, которая сохраняет общие настройки из нескольких входов editText.

Я пытаюсь реализовать функцию кнопки, которая при нажатии сохраняет значения из нескольких правок редактирования в клавиши sharedPreference. После некоторого исследования я установил переменные в полях editText, которые я запишу в общие настройки.

fun onClick() {

        var str = editText2.text.toString()
        var dex = editText.text.toString()
        var int = editText4.text.toString()

        when () {
            R.id.button -> {
                //add write sharedPreferences
            }
        }
}

Я получаю ожидающую ошибку выражения при попытке ее скомпилировать в скобках when.

1 Ответ

3 голосов
/ 20 мая 2019

when нужен аргумент, который будет сравниваться с кейсами типа R.id.button.

Таким образом, вы можете реализовать интерфейс onClickListener как

class MainActivity : AppCompatActivity(), View.OnClickListener {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        //setSupportActionBar(findViewById(R.id.my_toolbar))

        button.setOnClikListener(this)

        fab.setOnClickListener { view ->
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                .setAction("Action", null).show()
        }
    }

    override fun onCreateOptionsMenu(menu: Menu): Boolean {
        // Inflate the menu; this adds items to the action bar if it is present.
        menuInflater.inflate(R.menu.menu_main, menu)
        return true
    }

    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        return when (item.itemId) {
            R.id.action_settings -> true
            else -> super.onOptionsItemSelected(item)
        }
    }

    override fun onClick(v: View?) {
        var str = editText2.text.toString()
        var dex = editText.text.toString()
        var int = editText4.text.toString()

        when (v.id) {
            R.id.button -> {
                //add write sharedPreferences
            }
        }
    }
}
...