2013-03-04 76 views
-1

我想在复选框按钮中的类代码而不是xml文件中隐藏复选标记。 因为我是用两个背景检查是否属实组后台..如果假组后台“checkbox.png”如何设置复选标记隐藏

公共类ListActivity延伸活动{

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_list); 


    AbsoluteLayout ff = (AbsoluteLayout) this.findViewById(R.id.AbsoluteLayout1); 

    ScrollView myScrollView = (ScrollView) findViewById(R.id.scrollView1); 
    TableLayout tl =(TableLayout) findViewById(R.id.h103); 
    TableRow tr = (TableRow) findViewById(R.id.TableRow18); 
    CheckBox cb = (CheckBox) findViewById(R.id.CheckBox18); 
    TextView tv = (TextView) findViewById(R.id.TextView34); 





// ScrollView myScrollView1 = new ScrollView(this); 
    TableLayout tl1 =new TableLayout(this); 
    TableRow tr1 = new TableRow(this); 
    final CheckBox buttonView = new CheckBox(this) ; 
    TextView tv1 = new TextView(this); 

    /*myScrollView.getLayoutParams(); 
    ViewGroup.LayoutParams iv_params_b = myScrollView1.getLayoutParams(); 
    myScrollView1.setLayoutParams(iv_params_b);*/ 


    //buttonView.setVisibility(1); 
    buttonView.setBackground(getResources().getDrawable(R.drawable.checkbox)); 
    //buttonView.setVisibility(View.GONE); 
    buttonView.setFocusable(false); 

    buttonView.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 


      if(((CheckBox) v).isChecked()) 
      {   

       //buttonView.setChecked(false); 
       buttonView.setBackground(getResources().getDrawable(R.drawable.star)); 

      }else 
      { 
       //buttonView.setChecked(true); 
       buttonView.setBackground(getResources().getDrawable(R.drawable.checkbox)); 

      } 

     } 
    }); 


    /* if(isChecked) 
     {    
      buttonView.setBackground(getResources().getDrawable(R.drawable.star)); 
     }else 
     { 
      buttonView.setBackground(getResources().getDrawable(R.drawable.checkbox)); 
     } */ 











    ViewGroup.LayoutParams iv_params_b = tl.getLayoutParams(); 
    tl1.setLayoutParams(iv_params_b); 


    ViewGroup.LayoutParams iv_params_b1 = tr.getLayoutParams(); 
    tr1.setLayoutParams(iv_params_b1); 


    ViewGroup.LayoutParams iv_params_b2 = cb.getLayoutParams(); 
    buttonView.setLayoutParams(iv_params_b2); 


    ViewGroup.LayoutParams iv_params_b3 = tv.getLayoutParams(); 
    tv1.setLayoutParams(iv_params_b3); 

    tl.addView(tr1); 
    tr1.addView(buttonView); 

    } 
    } 
+0

http://learningnerd.wordpress.com/2006/09/06/english-grammar-types-of-phrases/和http://www.lel.ed.ac.uk/grammar/overview.html。无法理解你想要什么以及你有什么。对不起:-( – g00dy 2013-03-04 13:37:46

+0

当我点击复选框按钮有蓝色复选标记。我想隐藏这个复选标记只因为我使用不同的背景 – user1714553 2013-03-04 13:39:44

+0

请参阅此链接(http://developer.android.com/reference/ android/view/View.html#INVISIBLE),如果你在执行时遇到问题,请回到这里并解释。 – g00dy 2013-03-04 13:41:17

回答

0

你也许应该使用框架的常量,如View.Gone

+0

由于他试图设置视图的背景,它仍然需要在那里。 – Geobits 2013-03-04 13:41:32

+0

我已经把:buttonView.setVisibility(2);但不是有效的,,我想隐藏内部检查标记 – user1714553 2013-03-04 13:46:22

+0

2问题:你问题的描述不是很清楚,你应该使用命名常量(View.GO NE,View.INVISIBLE)为清楚起见。 – DigCamara 2013-03-04 13:52:44

0

将此存储为可绘制文件夹中的xml。

<?xml version="1.0" encoding="utf-8"?> 
<selector 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
    android:state_checked="true" android:state_focused="true" 
    android:drawable="@drawable/checked"/> 
    <item 
    android:state_checked="false" android:state_focused="false" 
    android:drawable="@drawable/notchecked" 
    /> 
</selector> 

并将其设置为您的复选框andriod:button="@drawable/yourxmlfile.

的你不需要编程方式更改图像。

希望这会帮助你。

checkbox.setVisibility(View.INVISIBLE)这就是您要求的答案。

编辑

final CheckBox checkBox1=new CheckBox(MainActivity.this); 

checkBox1.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

    @Override 
    public void onCheckedChanged(CompoundButton paramCompoundButton, 
      boolean paramBoolean) { 
     // TODO Auto-generated method stub 

     if (paramBoolean) { 

      checkBox1.setButtonDrawable(R.drawable.ic_launcher); 
      //here you can change 
     } 
     else 
     { 
      checkBox1.setBackgroundColor(Color.BLUE); 
     } 
    } 
}); 

退房代码...

+0

不,我想以编程方式使用它,因为我将用于循环。 – user1714553 2013-03-04 13:48:42

+0

因为这只是得到状态单独... if(checkbox.ischecked()){//做你的东西..} – itsrajesh4uguys 2013-03-04 13:49:42

+0

View.INVISIBLE它会隐藏我所有的复选框按钮:(我只想隐藏里面的复选标记我检查按钮 – user1714553 2013-03-04 13:50:25