热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

即使我选择了另一个单选按钮,单选按钮也保持选中状态

如果某人选择了这些单选按钮之一,则即使用户开始另一个活动或应用程序关闭

如果某人选择了这些单选按钮之一,则即使用户开始另一个活动或应用程序关闭,它也应保持选中状态。使用下面实现的代码,在应用程序启动时,已经对“ miles.btn.setchecked(MilesButtonState)进行了miles_btn的检查。当我选择kmleight_btn并返回到活动时,在公里数已被设置的情况下,miles_btn仍然处于选中状态取消选择。

问题:如果用户选择了km-btn,如何保持它处于选中状态,而不是默认返回Miles_btn。

注意:如果我将km_btn.setchecked(KMbuttonState)移到miles_btn.setchecked(MilesButtonStates)下,则应用程序在应用程序启动时已选择kml_btn而不是Miles_btn。

顺便说一句,如果用户未进行选择,则默认情况下应选择km_btn,如下面的xml代码所示。

android:id="@+id/distance_btn_group"
android:layout_
android:layout_
android:layout_marginTop="5dp"
android:layout_marginEnd="35dp"
android:gravity="end"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
android:id="@+id/miles_btn"
android:layout_
android:layout_
android:text="Miles"
android:textColor="#ffff"
android:gravity="start"
android:paddingTop="30dp"
android:paddingStart="-30dp"
android:paddingEnd="35dp"
android:OnClick="buttonCheck"/>
android:id="@+id/kilometer_btn"
android:layout_
android:layout_
android:text="km"
android:textColor="#ffff"
android:gravity="start"
android:paddingTop="30dp"
android:paddingStart="-26dp"
android:checked="true"
android:paddingEnd="5dp"
android:OnClick="buttonCheck"/>

即使我选择了另一个单选按钮,单选按钮也保持选中状态

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.settings);
sharedPreferences = getSharedPreferences(Shared_info,Context.MODE_PRIVATE);
Boolean MilesButtOnState= sharedPreferences.getBoolean(MILESBTN,false);
sharedPreferences = getSharedPreferences(Shared_info,Context.MODE_PRIVATE);
Boolean KMButtOnState= sharedPreferences.getBoolean(KMBTN,false);
distancebtn_group = findViewById(R.id.distance_btn_group);
miles_btn = (RadioButton) findViewById(R.id.miles_btn);
kilometer_btn = (RadioButton) findViewById(R.id.kilometer_btn);
kilometer_btn.setChecked(KMButtonState);
miles_btn.setChecked(MilesButtonState);
kilometer_btn.setOnClicklistener(new View.OnClicklistener() {
@Override
public void onClick(View view) {
SharedPreferences.Editor editor = sharedPreferences.edit();
boolean kmChecked = kilometer_btn.isChecked();
editor.putBoolean(KMBTN,kmChecked);
editor.apply();
}
});
miles_btn.setOnClicklistener(new View.OnClicklistener() {
@Override
public void onClick(View v) {
SharedPreferences.Editor editor = sharedPreferences.edit();
Boolean milesChecked = miles_btn.isChecked();
editor.putBoolean(MILESBTN,milesChecked);
editor.apply();

正确答案:这对我有用。...

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.settings);
sharedPreferences = getSharedPreferences(Shared_info,MODE_PRIVATE);
distancebtn_group = findViewById(R.id.distance_btn_group);
miles_btn = (RadioButton) findViewById(R.id.miles_btn);
kilometer_btn = (RadioButton) findViewById(R.id.kilometer_btn);
kilometer_btn.setOnClicklistener(new View.OnClicklistener() {
@Override
public void onClick(View view) {
SharedPreferences.Editor editor = sharedPreferences.edit();
boolean kmChecked = kilometer_btn.isChecked();
editor.putBoolean(KMBTN,kmChecked);
editor.apply();
}
});
miles_btn.setOnClicklistener(new View.OnClicklistener() {
@Override
public void onClick(View v) {
SharedPreferences.Editor editor = sharedPreferences.edit();
boolean milesChecked = miles_btn.isChecked();
editor.putBoolean(MILESBTN,milesChecked);
editor.apply();
}
});
SharedPreferences sharedPreferences = getSharedPreferences(Shared_info,MODE_PRIVATE);
kilometer_btn.setChecked(sharedPreferences.getBoolean("kilometer_btn",true));
miles_btn.setChecked(sharedPreferences.getBoolean("miles_btn",false));
}

}


您应将所有RadioButton放入父RadioGroup中,以允许一次选择。

...>
.../>
.../>


,

您的Java代码逻辑不正确。使用以下代码:

int selectedId = distancebtn_group.getCheckedRadioButtonId();
// find which radioButton is checked by id
if(selectedId == miles_btn.getId())
{
//your code logic for miles selection button
}
else if(selectedId == kilometer_btn.getId())
{
//your code logic for kilometer selection button
}

,

您的共享首选项使您看起来两个变量彼此独立,而我猜您正在使用它来决定用户选择了哪个选项,我想使用一个dependencies {
// ...
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}
变量,它可以是布尔值例如,对于英里为true,对于公里为false,或者在示例中为字符串“ KM”和“ MILES”。

distanceChoice

当您要检查选择了哪一个时,可以使用它进行比较:

public String getDistanceChoice(){
sharedPreferences=getSharedPreferences(Shared_info,Context.MODE_PRIVATE);
return sharedPreferences.getString(distance_info,"KM");
}
public void setDistanceChoice(String distanceChoice) {
SharedPreferences.Editor sharedPrefsEditor = sharedPreferences.edit();
sharedPrefsEditor.putString(distance_info,distanceChoice);
sharedPrefsEditor.apply();
}

推荐阅读
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • IhaveconfiguredanactionforaremotenotificationwhenitarrivestomyiOsapp.Iwanttwodiff ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
author-avatar
mce
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有