android-setOnClickListeners用于动态创建的复选框

android-setOnClickListeners用于动态创建的复选框,第1张

概述尝试在我的应用程序中创建动态Checkboxes时遇到问题.设计工作正常,我可以创建任意数量的复选框.复选框与TextView一起放入TableRow中,以便文本位于复选框的左侧.但是我的问题是,在我的活动中,无论是否选中,我都可以获取复选框的“状态”.我使用充气机创建我的复选框.复选框的xml: @H_502_0@尝试在我的应用程序中创建动态CheckBoxes时遇到问题.设计工作正常,我可以创建任意数量的复选框.复选框与TextVIEw一起放入tableRow中,以便文本位于复选框的左侧.但是我的问题是,在我的活动中,无论是否选中,我都可以获取复选框的“状态”.
我使用充气机创建我的复选框.复选框的xml:

@H_502_0@

<tableRow xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:ID="@+ID/tableRow" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content"><TextVIEw androID:paddingleft="20dip" androID:ID="@+ID/tv_effect" androID:gravity="left" androID:layout_height="wrap_content" androID:layout_gravity="center_vertical" androID:textcolor="#000" androID:textSize="18dip" androID:layout_wIDth="wrap_content"></TextVIEw><CheckBox androID:ID="@+ID/cb_effect" androID:layout_height="wrap_content" androID:text="" androID:layout_gravity="right" androID:layout_wIDth="wrap_content"></CheckBox>
@H_502_0@我调用的函数来创建一个包含textvIEw和复选框的新tablerow:

@H_502_0@

    public voID layoutMakeSpeakerEffect(String effectname,int effectNumber){    LayoutInflater linflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);    VIEw myVIEwSp = linflater.inflate(R.layout.speaker_settings, null);    final TextVIEw tv_effect = (TextVIEw) myVIEwSp.findVIEwByID(R.ID.tv_effect);    tv_effect.setID(effectNumber);    tv_effect.setText(effectname);    final CheckBox cb_effect = (CheckBox) myVIEwSp.findVIEwByID(R.ID.cb_effect);    cb_effect.setID(effectNumber);    cb_effect.setText("");    cb_effect.setonClickListener(new OnClickListener() {          @OverrIDe          public voID onClick(VIEw v) {               if(cb_effect.isChecked())              {                  Toast toast = Toast.makeText(getApplicationContext(), ""+tv_effect.getText()+": ON", Toast.LENGTH_SHORT);                  toast.show();              }              else              {                  Toast toast = Toast.makeText(getApplicationContext(), ""+tv_effect.getText()+": OFF", Toast.LENGTH_SHORT);                  toast.show();               }          }    });    tl_speakerSettings.addVIEw(myVIEwSp);   }
@H_502_0@如前所述,设计工作正常.
但是我如何能够在此功能之外使复选框中的“状态”消失呢?
我还需要一个可以清除复选框状态的功能,以及另一个可以启用和禁用复选框的功能?

@H_502_0@我似乎无法自己解决这个问题.

@H_502_0@我唯一的想法是做一些检查“ cb_effects” ID的事,然后检查所需复选框的状态.

解决方法:

@H_502_0@请改用setOnCheckedChangeListener.它将触发onCheckedChanged(Compoundbutton buttonVIEw,boolean isChecked)方法,您现在可以在其中读取isChecked变量的复选框状态.

总结

以上是内存溢出为你收集整理的android-setOnClickListeners用于动态创建的复选框全部内容,希望文章能够帮你解决android-setOnClickListeners用于动态创建的复选框所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1092752.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存