我一直在研究这个问题,但我找不到一个带有复选框的get drawable的解决方案。我试图做的是,当你点击这个特定的复选框时,它会过滤相应颜色的复选框。顺便说一下,这是一个片段。所以,我有可以是红色、黄色或绿色的复选框。如果用户点击它们,它会改变颜色。例如,我有一个黄色的复选框,它是chkProgress,当它被单击时,我想找到所有黄色的复选框,并筛选黄色的复选框。所以,我有可绘制的ID,我需要得到可绘制的能够定位复选框的颜色。我希望能够过滤当用户单击chkprogress时为黄色的复选框。下面是我的代码:
private CheckBox [] checkBoxes = new CheckBox[2];
checkBoxes[0] = chkStart;
checkBoxes[1] = chkDownload;
private Drawable yellowDrawable = getResources().getDrawable(R.drawable.custom_yellow_checkbox);
chkInProgess.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (chkInProgess.isChecked()){
//something here
if (chkStart.getDrawable == yellowDrawable) // need proper code here or a for loop to do this efficiently.
} else if (!chkInProgess.isChecked()){
chkInProgess.setChecked(true);
}
}
});
下面是我需要查找的复选框(如果它们是黄色的):
chkStart.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
countStart = checked(chkStart, countStart);
editor.putInt(CHECK_START_ID, countStart);
editor.apply();
}
});
chkDownload.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
countDownload = checked(chkDownload, countDownload);
editor.putInt(CHECK_DOWNLOAD_ID, countDownload);
editor.apply();
}
});
下面是检查复选框(如果它们是某种颜色)的方法:
public int checked(CheckBox checkBox, int count){
if (checkBox.isChecked()){
count++;
} else if (!checkBox.isChecked()){
checkBox.setChecked(true);
count++;
}
if (count == 1){
checkBox.setButtonDrawable(R.drawable.custom_yellow_checkbox);
}
if (count == 2){
checkBox.setButtonDrawable(R.drawable.custom_green_checkbox);
}
if (count > 2){
count = 0;
checkBox.setButtonDrawable(R.drawable.custom_red_checkbox);
}
return count;
}
下面是我恢复App时的方法:
@Override
public void onResume() {
super.onResume();
start = mSharedPreferences.getInt(CHECK_START_ID, 0);
start = idChecked(chkStart, start);
countStart = start;
download = mSharedPreferences.getInt(CHECK_DOWNLOAD_ID, 0);
download = idChecked(chkDownload, download);
countDownload = download;
}
所以,我正在尝试得到抽屉,并将它们与复选框的颜色相匹配。我找不到任何能帮助我的东西。任何帮助都将不胜感激。谢谢!
我想出了问题所在。所以,我做了一个方法来检查复选框的计数是否是某个数字,就像我对checked方法做的那样。我会将带有该数字的复选框设置为“可见”或“不可见”。
public int colorCheckYellow(CheckBox checkbox, int value){
if (value == 1)
checkbox.setVisibility(View.VISIBLE);
else
checkbox.setVisibility(View.GONE);
return value;
}
那我就这样叫它:
chkInProgess.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (chkInProgess.isChecked()) {
countStart = colorCheckYellow(chkStart, countStart);
countDownload = colorCheckYellow(chkDownload, countDownload);
}else if (!chkInProgess.isChecked()) {
checkboxVisible();
}
}
我有一些其他的代码,以及使一切工作,但这是它!
我在这里使用这个示例代码创建一个JTree,其中所有的叶子都有一个复选框。我遇到的问题是,我还需要能够选择节点对象,而不必勾选复选框。在我的用例中,勾选复选框将使某些内容可见或隐藏,但选择节点将允许在UI的单独部分编辑对象。最好的方法是什么?是否可以检测何时单击复选框的“框”部分,或者是否选中节点? 我看到的另一个错误是,当文件夹有子元素时,文件夹左侧的指示器正确显示文件夹已打开: 但是如果'文件
问题内容: 我需要将复选框添加到JTree。自定义TreeCellRenderer / TreeCellEditor似乎是正确的方法。到目前为止,我在此网页中使用了CheckBoxNodeRenderer方法。除了两件事,它可以正常工作: 复选框上方+下方有额外的空格;我想使其与常规JTree相同。 我想区分单击复选框本身(应尝试切换复选框)和单击与复选框相关联的文本(应允许事件侦听器将此解释为单
问题内容: 是否可以将复选框代替“链接名称”? 如果是这样怎么办? 谢谢, 问题答案: 是的,当然有可能。您可以使用标准复选框: 然后在单独的javascript文件中使用jQuery订阅此复选框的change事件,并毫不客气地对其进行AJAXify:
问题内容: 第一次在这里发布问题,如果违反任何Stack Overflow礼节,请提前道歉!:-) 我第一次去一些AngularJS,以便为我的老板创建概念证明。这是一个基本的租车列表应用程序,主列中有结果列表,侧面有一个过滤器面板。我设法从JSON对象中提取结果,并应用一个基本的过滤器,如下所示; 筛选器 …我还无法解决的一件事是如何添加一组复选框以应用过滤器,例如“汽车类型”,其中包含“迷你”
问题内容: 如何创建带有可单击标签的HTML复选框(这意味着单击标签可以打开/关闭该复选框)? 问题答案: 方法1:包装标签标签 将复选框包装在标签内: 方法2:使用属性 使用属性(匹配复选框): 注意 :ID在页面上必须是唯一的! 说明 由于其他答案均未提及,因此标签最多可以包含1个输入并忽略该属性,并且将假定该属性用于其中的输入。 w3.org的摘录(重点介绍): [for属性]显式地将要定义
问题内容: 我想过滤结果。 有一个葡萄酒清单,我的愿望是当未选中任何复选框时,将显示整个葡萄酒清单。 当仅选中1个复选框时,显示相关类别 当选中多个复选框时,将显示相关类别 我是AngularJS的新手,我尝试了ng-model都没有成功,这是没有与函数关联的ng-model的代码: 如何使用ng-model或ng-change将功能与每个复选框按钮相关联以具有实时过滤模型? 问题答案: 只是添加