【发布时间】:2017-03-08 23:41:24
【问题描述】:
我目前正在处理一个包含三个切换按钮的片段。在我的片段布局中:
<ToggleButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/corkRdToggle"
android:layout_below="@+id/imageView2"
android:layout_alignStart="@+id/imageView2"
android:layout_marginRight="15dp"
android:textSize="12sp" />
<ToggleButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/collegeStToggle"
android:layout_below="@+id/imageView2"
android:layout_centerHorizontal="true"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:textSize="12sp" />
<ToggleButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/allRoomsToggle"
android:layout_below="@+id/imageView2"
android:layout_alignEnd="@+id/imageView2"
android:layout_marginLeft="15dp"
android:textSize="12sp" />
在我的片段 onViewCreated() 方法中,我通过 id 找到切换按钮,设置“on”和“off”文本,并将一个按钮设置为活动:
corkRdToggle = (ToggleButton) view.findViewById(R.id.corkRdToggle);
collegeStToggle = (ToggleButton) view.findViewById(R.id.collegeStToggle);
allRoomsToggle = (ToggleButton) view.findViewById(R.id.allRoomsToggle);
corkRdToggle.setTextOn("Cork Rd.");
collegeStToggle.setTextOn("College St.");
allRoomsToggle.setTextOn("All Rooms");
collegeStToggle.setTextOff("College St.");
allRoomsToggle.setTextOff("All Rooms");
corkRdToggle.setTextOff("Cork Rd.");
allRoomsToggle.setChecked(true);
并将侦听器附加到它们:
corkRdToggle.setOnClickListener(this);
collegeStToggle.setOnClickListener(this);
allRoomsToggle.setOnClickListener(this);
在我的 onClick() 中:
case R.id.corkRdToggle:
if(allRoomsToggle.isChecked() || collegeStToggle.isChecked()){
allRoomsToggle.setChecked(false);
collegeStToggle.setChecked(false);
}
corkRdToggle.setChecked(true);
break;
case R.id.collegeStToggle:
if(allRoomsToggle.isChecked() || corkRdToggle.isChecked()){
allRoomsToggle.setChecked(false);
corkRdToggle.setChecked(false);
}
collegeStToggle.setChecked(true);
break;
case R.id.allRoomsToggle:
if(corkRdToggle.isChecked() || collegeStToggle.isChecked()){
corkRdToggle.setChecked(false);
collegeStToggle.setChecked(false);
}
allRoomsToggle.setChecked(true);
break;
我有三个切换按钮,它们链接到布局中的按钮,文本已设置为打开和关闭状态,并且“所有房间”按钮已默认设置为在创建画面。无论按下哪个按钮都将变为活动状态,同时停用其他两个按钮。一切正常......除了初始状态。创建屏幕时,“所有房间”按钮确实被激活,并显示文本,但其他两个切换按钮仅显示“关闭”:
按下其中任何一个都会停用“所有房间”按钮,并且正确的文本将显示在所有按钮中:
只要屏幕被使用,这种情况就会一直存在(由于我的代表,我只能发布 2 个链接,请相信它正在工作)。
但是,当我重新创建屏幕时,问题又回来了。对此进行了很多研究,但似乎没有任何与此相关的信息,而且我的新手技能已经筋疲力尽。如果您有任何问题,我将非常感谢您的指点,谢谢!
【问题讨论】:
-
您是否尝试过最初在未显示正确初始文本的那些上设置检查(false)?
-
我刚试过,它奏效了,你这个美女!非常感谢瑞,谢谢!你想把它放在一个答案中,我会接受吗?
-
刚刚完成,谢谢 =)
标签: java android android-togglebutton