- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个时区列表,已添加到回收器 View 中。但是,我在 Activity 中的主列表检查正常,但是当我使用搜索并且列表压缩并且单击复选框时,它不会显示复选标记。但是,在调试中,单击时该值设置为 true,并且仍然会正确地将其添加到回收器 View 中。
我尝试在网上查找,但没有解决这个特定问题的方法。
@Override
public void onBindViewHolder(@NonNull final TimezoneViewHolder holder, final int position) {
// Initialize tools
final Timezone_Item currentTimezoneItem = timezoneList.get(position);
int pos = currentTimezoneItem.getId();
final int tzID = --pos;
holder.mChkboxSelect.setText(currentTimezoneItem.getValue());
holder.mUTCCode.setText(currentTimezoneItem.getName());
// This is the solution for... Clicking the checkbox once would select multiple timezones. Not with this.
if(selectedTimezones.get(position)){
holder.mChkboxSelect.setChecked(true);
currentTimezoneItem.setIsSelected(true);
}else{
holder.mChkboxSelect.setChecked(false);
currentTimezoneItem.setIsSelected(false);
}
// Manually activate the clicks in checkbox
holder.mChkboxSelect.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(currentTimezoneItem.getIsSelected()){
currentTimezoneItem.setIsSelected(false);
holder.mChkboxSelect.setChecked(false);
}else {
currentTimezoneItem.setIsSelected(true);
holder.mChkboxSelect.setChecked(true);
}
if(TimezonePickerActivity.isSearching){
selectedTimezones.put(currentTimezoneItem.getId() - 1, currentTimezoneItem.getIsSelected());
}else {
selectedTimezones.put(tzID, currentTimezoneItem.getIsSelected());
}
notifyDataSetChanged();
}
});
}
这是我的搜索过滤器...
private Filter SearchFilter = new Filter() {
@Override
protected FilterResults performFiltering(CharSequence searchText) {
List<Timezone_Item> filteredList = new ArrayList<>();
if (searchText == null || searchText.length() == 0) {
TimezonePickerActivity.isSearching = false;
filteredList.addAll(timezoneListFull);
} else {
String filterPattern = searchText.toString().toLowerCase().trim();
TimezonePickerActivity.isSearching = true;
for (Timezone_Item item : timezoneListFull) {
if (item.getName().toLowerCase().contains(filterPattern)) {
filteredList.add(item);
}
}
}
FilterResults filterResults = new FilterResults();
filterResults.values = filteredList;
return filterResults;
}
@Override
protected void publishResults(CharSequence searchText, FilterResults results) {
timezoneList.clear();
timezoneList.addAll((List) results.values);
notifyDataSetChanged();
}
};
这是我将所选时区添加到回收器 View 中的代码
fabAddTimezone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) { SparseBooleanArray selectedTimezones = Timezone_RVAdapter.selectedTimezones;
// Filter out false values
for (int i = 0; i < selectedTimezones.size(); i++) {
if(!selectedTimezones.valueAt(i)){
selectedTimezones.removeAt(i);
selectedTimezones.delete(i);
}
}
// Take filtered values and find its index to grab text and UTC code
for (int i = 0; i < selectedTimezones.size(); i++) {
// Get the position(Key) which is actually the Timezone_Item ID
int position = selectedTimezones.keyAt(i);
// Create new clock item to add into list
Clock_Item clockItem = new Clock_Item(
Timezone_RVAdapter.timezoneListFull.get(position).getName(),
Timezone_RVAdapter.timezoneListFull.get(position).getValue()
);
// Add clock to a list
mClockList.add(clockItem);
}
// Save clock list
sharedPrefs.SaveClockList(mClockList);
// Go back to main menu. Clock list should automatically load once activity boots
finish();
}
});
最佳答案
下面的 block 有可能始终为真
if(currentTimezoneItem.getIsSelected()){
currentTimezoneItem.setIsSelected(false);
//Calling the below statement is irrelevant inside onClick of itself
//because when inside here checkbox can never be checked
holder.mChkboxSelect.setChecked(false);
}
删除或注释掉在 mChkboxSelect
上调用 .setChecked
的每一行语句,并允许 android 处理状态。您可以控制复选框的状态,但不能在其 onClick 事件内部控制,因为单击复选框会自动更改状态。
关于java - 复选框 true/false 表示 ischecked 工作,但不显示 ui 复选标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57511470/
我有一个选择“全部”复选框,我希望将其绑定(bind)到其他复选框的 (IsChecked || !IsEnabled)。 选中“全部”会选中所有启用的复选框。 取消选中“全部”会取消选中所有复选框。
我在运行时动态创建了一些复选框,现在我想知道其中一个是否被选中。我怎样才能做到这一点? for (int i = 0; i < cnt; i++) { cb =
当我在学习 Android 开发者基础类(class)时,我对下面的代码产生了以下疑问。 public void onRadioButtonClicked(View view) { /
是否弃用了 isChecked() 方法? 我正在为 android UI 编码并使用 UiAutomator Framework 那里没有显示这个方法 我正在尝试通过 isChecked() 验证一
这让我很生气。我有一个简单的 WPF 切换按钮,有两个 IsChecked 触发器。一个为真值,另一个为假值。未选中按钮时它工作正常,应用了我的 false 样式;但是,系统从不应用 IsChecke
如何使用单选按钮“IsChecked”属性控制文本框的可见性? 我有一个两个文本框,比如说 txtbox1 和 txtbox2,我想根据单选按钮 IsChecked 属性绑定(bind)这两个文本框的
所以我有一个复选框,它使用 WPF/MVVM 触发命令,这工作正常,但我想使用复选框的 IsChecked 属性作为命令参数。我试过这个。 但是我在输出窗口中收到一个错误,上面写着 System
我有两个单选按钮,我希望默认选择其中一个。我添加了 IsChecked="true" ,但它不起作用。我还尝试将其设置在窗口加载中。 但是当我单击第二个选项然后单击第一个选项时,一切正常。 它只是在第
我有以下用于切换按钮的 xaml:
我正在尝试构建一个函数来更改复选框选择上的文本,请检查以下内容... Jquery代码 $(document).ready(function() { if($('#active').is(':chec
我正在编写一个程序,其中有一个由一系列复选框组成的组合框。用户可以选择任意数量的复选框。之后,当他点击一个按钮时,我想检查所有复选框以查看哪些已被选中,哪些未被选中。 但我不知道该怎么做。我尝试了很多
这个问题在这里已经有了答案: How do I compare strings in Java? (23 个回答) 关闭 7 年前。 我在 Activity 上使用复选框来确定需要将对象添加到哪个列
选中复选框时,以下代码不起作用。无论复选框是否被选中,它都会跳转到“else”语句。 void MainWindow::runButtonClicked() {
我有一个使用 C# 编写的 UWP 应用程序。我有一个单选按钮,用户可以选中或取消选中。默认情况下它是选中的,用户可以在需要时取消选中它。但是,当他们取消选中它时,RadioButton.IsChec
这是我要实现的目标的简化示例; " id="myCheckBox" /> 然后在我后面的代码中; public partial class _Default : System.Web.UI.Page
找到了很多例子,但没有一个合适!我的列表框是 Result 对象的列表。可以在列表框中选中或取消选中结果以将其标记为“允许”传输。 文件列表模板
Android version: 3.1 API version: Android 2.2 Device: Motorola MX604 我动态创建了 CheckedTextView 项目的多选 Li
我正在尝试使用 fragment 构建我的 PreferenceActivity。我有一个包含两个 CheckBoxPreferences 的 PreferenceFragment: 我的 Fra
我正在努力测试类的属性值是否在单击切换器后发生变化。 所以这里我有组件类(没什么复杂的-.-): import { Component, EventEmitter, Input, OnInit, Ou
我有带有 ToggleButtons 数量的自定义控件: ...
我是一名优秀的程序员,十分优秀!