【问题标题】:Kotlin how to save Radio Button and display values?Kotlin 如何保存单选按钮并显示值?
【发布时间】:2020-06-14 08:00:29
【问题描述】:

所以我正在努力学习 Kotlin,并且一直在使用 Android Studios 来练习和学习。目前我正在尝试使用 RadioGroup(带有单选按钮)进行简单的活动,保存选定的值,然后显示每个值(单选按钮)的选择量。

我的问题是,如何打印选择了哪个按钮,选择了多少个这种类型的按钮?

我尝试了以下方法:

    //in MainActivity.kt in my MainActivity class 
    s1RadioGroup.setOnCheckedChangeListener { _, checkedId ->
        //if catButton was selected add 1 to variable cat
        if(checkedId == R.id.catRadio) {
            catSum += 1
            print(catSum)
        }
        //if dogButton was selected add 1 to variable dog
        if(checkedID == R.id.dogRadio) {
            dogSum += 1
            print(dogSum)
    }

不确定我是否以正确的方式进行,但所需的输出是:

我有布局、ID、清除按钮和其他一切工作。 但我不确定如何在“SaveButton”上使用 onClickListener 事件来保存选定的单选按钮,然后显示结果(例如:Cat = 1,Dog =2)。如果您有任何建议,或者您能指出正确的方向,我将不胜感激。

【问题讨论】:

    标签: android android-studio kotlin radio-button


    【解决方案1】:

    你可以试试这样的:

      RadioButton rb = (RadioButton) findViewById(R.id.radio_button);
      // restore previous state
      rb.setChecked(lastButtonState);
      // set a listener
      rb.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            // call this to enable editing of the shared preferences file
            // in the event of a change
            SharedPreferences.Editor editor = sharedpreferences.edit();
            Boolean isChecked = rb.isChecked();
            // use this to add the new state
            editor.putBoolean(BUTTON_STATE, isChecked);
            // save
            editor.apply();
         }
      });
    

    我意识到这是用 Java 编写的,而您要求使用 kotlin,但 SharedPreference 是您保存单选按钮状态所需要的。

    【讨论】:

      【解决方案2】:

      如果你想保存所有数据,你可以使用数据库或 sharedprefrence。 如果您只想点击显示值,您可以在按钮保存中进行这样的操作。

      String result1 = ""
      String result2 = ""
      String result3 = ""
      RadioGroup radioGroup = findViewById('yourRGidFromXml')
      radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
      
      @Override
      public void onCheckedChanged(RadioGroup arg0, int arg1) {
          int selectedId = radioGroup.getCheckedRadioButtonId();
          RadioButton rb = findViewById(selecetedId)
          result1= rb.getText.toString()
          Log.i("ID", String.valueOf(selectedId));
      
        }
      });
      //this just for see result
      btnSave.OnclikListener(view -> {
      Log.i("Result1",result1)
      })
      

      您可以复制代码,android 会将该代码转换为 kotlin。

      【讨论】:

        猜你喜欢
        • 2015-09-05
        • 2019-07-28
        • 2014-10-03
        • 2013-08-16
        • 1970-01-01
        • 1970-01-01
        • 2013-04-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多