我需要一些小代码的帮助。 基本上我有一个按钮和一些生成的复选框(不知道有多少)。只要未选中复选框,就应隐藏和禁用该按钮。选中一个或多个复选框后,应显示并启用该按钮。 我怎么能这样做?
答案 0 :(得分:1)
只需创建一个计数器变量
public class MyActivity extends Activity
{
int counter = 0;
//onCreate() and other code
然后在onCheckedChangedListener()
上设置CheckBoxes
,并根据是否选中此框来增加/减少值
onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if (isChecked)
{
counter++;
}
else
{
counter--;
}
/* if (counter > 0)
change visibility
*/
}
显然你不能复制/粘贴这段代码,但应该给你一个很好的主意。
答案 1 :(得分:1)
会是这样的吗?
公共类MainActivity扩展了Activity {
LinearLayout idLayoutThisXml;
Button btn;
public boolean verifyChecked(){
idLayoutThisXml = (LinearLayout) findViewById(idCadastro.linearLayout);
for (int i = 0; i < idLayoutThisXml.getChildCount(); i++) {
View v = idLayoutThisXml.getChildAt(i);
if(v instanceof CheckBox){
if(((CheckBox)v).isChecked()){
return true;
}
}
}
return false;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(idMain.button);
if(verifyChecked()){
btn.setVisibility(View.VISIBLE);
}
else{
btn.setVisibility(View.INVISIBLE);
}
}
}
答案 2 :(得分:1)
举个例子......
XML文件:
<CheckBox android:id="@+idMain/check1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<CheckBox android:id="@+idMain/check2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<CheckBox android:id="@+idMain/check3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+idMain/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"/>
的活动:
公共类MainActivity扩展了Activity {
LinearLayout idLayoutThisXml;
Button btn;
public boolean verifyChecked(){
idLayoutThisXml = (LinearLayout) findViewById(idMain.layout);
for (int i = 0; i < idLayoutThisXml.getChildCount(); i++) {
View v = idLayoutThisXml.getChildAt(i);
if(v instanceof CheckBox){
if(((CheckBox)v).isChecked()){
return true;
}
}
}
return false;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button) findViewById(idMain.button);
if(verifyChecked()){
btn.setVisibility(View.VISIBLE);
}
else{
btn.setVisibility(View.INVISIBLE);
}
}
}
所以我有一个具有CheckBox类型子元素的布局,并且测试将是所有CheckBox llinearLayout,至少满足一个标记。按钮变得可见。
答案 3 :(得分:0)
myButton.setVisibility(View.INVISIBLE);
然后,在CheckBox
的{{1}}中,OnClickListener
答案 4 :(得分:0)
将按钮可见性设置为不可见
<Button android:id="@+id/mybutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello"
android:visibility="invisible"/>
然后致电
Button btn = (Button)findViewById(R.id.thebuttonid);
btn.setVisibility(View.VISIBLE); //View.GONE, View.INVISIBLE are available too.
满足条件时。 http://developer.android.com/reference/android/view/View.html
答案 5 :(得分:0)
你在XML中有一个复选框吗?使用
处理活动中的checkBoxCheckBox c = (CheckBox) findViewById (idThisCheckBoxInXml)
和
if (c.isActivated ()) {
botao.setVisibility (View.INVISIBLE) or botao.setVisibility (View.VISIBLE)
}
会是这样的吗?请原谅我糟糕的英语......