我在recyclerview中有一个开关,在从DB检索数据后,数据显示在recyclerview中.打开recyclerview时,我读DB,如果DB中的字段是"Y",我启用开关,否则我禁用开关.现在问题是它还调用了onCheckedchanged侦听器,我希望只有当用户手动设置开关时才调用onCheckedChanged.
在打开时,执行下面的recyclerview:
holder.enabledisable.setChecked(messengerRecord.get_is_valid().equalsIgnoreCase("Y"));
Run Code Online (Sandbox Code Playgroud)
ViewHolder类:
public class viewHolder extends RecyclerView.ViewHolder implements CompoundButton.OnCheckedChangeListener{
public SwitchCompat enabledisable;
public viewHolder(View v) {
enabledisable = (SwitchCompat) v.findViewById(R.id.enabledisable);
enabledisable.setOnCheckedChangeListener(this);
...................................
...................................
Run Code Online (Sandbox Code Playgroud)
刚刚打开recyclerView时调用的OncheckedChanged方法:
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
Log.v("ranjith","called oncheckedchanged");
MessengerRecord rec;
rec = dbHelper.getRecord(descview.getText().toString());
switch (buttonView.getId()) {
case R.id.enabledisable:
if (isChecked) {
rec.set_is_valid("Y");
dbHelper.updateRecord(rec);
}
}
Run Code Online (Sandbox Code Playgroud)
在布局文件中:
<android.support.v7.widget.SwitchCompat
android:layout_marginRight="16dp"
android:layout_marginEnd="16dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false"
android:id="@+id/enabledisable"
android:layout_alignRight="@+id/textview_to"
android:layout_alignEnd="@+id/textview_to"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"/>
Run Code Online (Sandbox Code Playgroud) android oncheckedchanged android-switch switchcompat android-recyclerview
我正在寻找一种在switch.setChecked(true);不触发的情况下以编程方式更改Android Switch小部件状态的方法OnCheckedChangedlistener.
我的第一个想法是将它换成一个,OnClickListener但因为这只记录点击次数,你不仅可以点击而且还可以滑动一个Switch然后它不适合用途,就好像用户要将Switch从关闭滑到打开然后当用户没有点击时,Switch实际上什么都不做......
如果有人为此获得解决方案或智能解决方案,那将是非常棒的
java android oncheckedchanged onclicklistener android-switch
请阅读我的问题,这不是一个重复的问题.
我在Windows窗体上有三个单选按钮,所有这些按钮都有相关的常见'CheckedChanged'事件.当我单击任何这些单选按钮时,它会触发"CheckedChanged"事件两次.
这是我的代码:
private void radioButtons_CheckedChanged(object sender, EventArgs e)
{
//My Code
}
Run Code Online (Sandbox Code Playgroud)
我插入断点,此事件中的整个代码迭代两次.请告诉我它为什么会这样?
我有一个带有一列复选框的GridView(GridView的其余部分正在从数据库中填充).我正在使用AJAX来执行不同的功能,我想知道我是不是在正确的位置调用OnCheckedChanged事件.它应该包含在某种UpdatePanel中吗?我仍然对所有这些工作方式都很陌生......基本上我的目标是在选中复选框时更改数据库中的位值.我知道如何做到这一点的逻辑,我只是不知道我是否以正确的方式处理我的OnCheckedChanged事件.
.CS
protected void CheckBoxProcess_OnCheckedChanged(Object sender, EventArgs args)
{
CheckBox checkbox = (CheckBox)sender;
GridViewRow row = (GridViewRow)checkbox.NamingContainer;
OrderBrowser.Text += "CHANGED";
}
}
Run Code Online (Sandbox Code Playgroud)
的.aspx
<html xmlns="http://www.w3.org/1999/xhtml">
Run Code Online (Sandbox Code Playgroud)
<asp:DropDownList runat="server" ID="orderByList" AutoPostBack="true">
<asp:ListItem Value="fName" Selected="True">First Name</asp:ListItem>
<asp:ListItem Value="lName">Last Name</asp:ListItem>
<asp:ListItem Value="state">State</asp:ListItem>
<asp:ListItem Value="zip">Zip Code</asp:ListItem>
<asp:ListItem Value="cwaSource">Source</asp:ListItem>
<asp:ListItem Value="cwaJoined">Date Joined</asp:ListItem>
</asp:DropDownList>
</div>
<div>
<asp:Label runat="server" ID="searchLabel" Text="Search For: " />
<asp:TextBox ID="searchTextBox" runat="server" Columns="30" />
<asp:Button ID="searchButton" runat="server" Text="Search" />
</div>
<div>
<asp:UpdatePanel ID = "up" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID = "orderByList"
EventName="SelectedIndexChanged" /> …Run Code Online (Sandbox Code Playgroud) 我最近在我的android项目中集成了butterknife,现在我正在尝试将@OnCheckedChanged注释用于radiogroup.但是没有给出回调的错误.那么调用和获取checkedId的正确方法是什么,或者这个方法仅适用于radiobutton而不适用于radiogroup.
@OnCheckedChanged(R.id.gendergroupid)
void onGenderSelected(RadioGroup group, int checkedId){
switch(checkedId){
case R.id.maleid:
maleid.setEnabled(true);
maleid.setChecked(true);
break;
case R.id.femaleid:
femaleid.setEnabled(true);
femaleid.setChecked(true);
break;
case R.id.bothid:
bothid.setEnabled(true);
bothid.setChecked(true);
break;
}
}
Run Code Online (Sandbox Code Playgroud)
给我错误
BloError:(89,10)错误:无法匹配@OnCheckedChanged方法参数.
参数#1:android.widget.RadioGroup与任何侦听器参数都不匹配
参数#2:int与任何侦听器参数都不匹配
方法最多可包含2个参数:
android.widget.CompoundButton布尔值
这些可以按任何顺序列出,但将从上到下搜索.ckquote
这是我的代码:
<CheckBox
android:id="@+id/sprint_checkbox"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/sprint_game" />
<CheckBox
android:id="@+id/marathon_checkbox"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/marathon" />
<CheckBox
android:id="@+id/never_ending_checkbox"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/never_ending" />
Run Code Online (Sandbox Code Playgroud)
我想要做的是"检测"其中一个被检查,然后将另外两个设置为"禁用",因此用户只能选择一个.我试图使用".setOnCheckedChangeListener",但我不能这样做,有人可以帮我一些代码吗?非常感谢!

我有一个listView,通过ArrayAdapter填充小xml子视图.每个小视图里面只有两个东西,一个复选框和一个旁边的字符串标签.
我想设置一个onCheckedChanged监听器来捕获用户检查或取消选中复选框的事件.
例如这里显示的听众:
listView.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
Toast.makeText(this, "box has been checked", Toast.LENGTH_SHORT).show();
}
Run Code Online (Sandbox Code Playgroud)
}
我在哪里放置监听器代码?以及如何设置?
ArrayAdapter的代码:
public class MobileArrayAdapter extends ArrayAdapter<CheckBoxInfo>{
CheckBoxInfo[] objects;
Context context;
int textViewResourceId;
public MobileArrayAdapter(Context context, int textViewResourceId,
CheckBoxInfo[] objects) {
super(context, textViewResourceId, objects);
this.context = context;
this.textViewResourceId = textViewResourceId;
this.objects = objects;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row_layout_view = convertView;
if ((row_layout_view == null)){
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row_layout_view = …Run Code Online (Sandbox Code Playgroud) android listener adapter oncheckedchanged android-arrayadapter
您好我正在创建一个使用复选框的Android应用程序,我想知道当复选框的状态发生变化时是否更好地使用OnCheckedChangeListener来执行某些操作,或者如果最好使用内部带有if语句的OnClickListener每次选中或取消选中复选框时执行它?谢谢
我在gridview中有一个复选框控件,Autopost后退= true
代码:'runat ="server"AutoPostBack ="True"OnCheckedChanged ="chkJobID_CheckedChanged"/>
现在,当我选中复选框时,"OnCheckedChanged"会触发并将jobID添加到数组中,但是当我取消选中该复选框时,它就不会触发................
任何人都可以帮我解决这个问题..................
Khushi
我在TemplateField中有一个带有asp CheckBox的GridView.TemplateField定义如下:
<asp:TemplateField HeaderText="HeaderName">
<ItemTemplate>
<asp:CheckBox ID="checkBoxId" runat="server" OnCheckedChanged="MyCheckChangedMethod" AutoPostBack="true"/>
</ItemTemplate>
</asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)
当我在MyCheckChangedMethod中使用断点运行我的Web项目并单击该复选框时没有任何反应.断点没有被击中.我的Visual Studio调试器正在运行.
另外,我的页面定义中有AutoEventWireup = True,因此我不必手动挂接事件.我以前从来没有遇到过这样做的问题.我在同一页面上有一个按钮设置与click事件完全相同的方式,并且断点得到了很好的打击.
有任何想法吗?
oncheckedchanged ×10
android ×6
checkbox ×4
c# ×3
asp.net ×2
java ×2
listener ×2
adapter ×1
ajax ×1
butterknife ×1
events ×1
gridview ×1
radio-button ×1
switchcompat ×1
winforms ×1