2012-10-08 108 views
0

在我的活動中,我希望一個複選框被點擊後,TextView出現在複選框下方。我應該如何做到這一點。我是否需要創建一個新的活動,以在複選框下方顯示新的TextView。或者我可以像以前一樣使用相同的活動來完成此任務。一旦創建一個TextView複選框被點擊

謝謝!

回答

2

你可以在XML做到這一點在同一個活動

下面創建CheckBox和yourTextView.visibility=gone TextView的

在你的班級編寫下面的代碼:

yourCheckBox.setonClickListener=new onClickListener(){ 

      @Override 
      public void onClick(View v) { 
      if(checkBox.isChecked()) 
       yourTextView.setVisibility(View.VISIBLE); 
      else 
       yourTextView.setVisibility(View.GONE); 

} 

} 
+0

我現在能夠做出的TextView後出現的框檢查。但現在問題是,當再次取消選中該框時,TextView仍然可見。我希望TextViewto只有在框被選中時纔可見。我該如何糾正?謝謝 – Ankush

+0

是檢查新的編輯代碼 這可能有助於:) – Syn3sthete

2

不需要創建新的活動。只需在佈局文件中添加textview並保持它不可見。當您選中複選框時,只需使該Textview可見即可。

2

添加TextView到您的佈局和設置android:visibility="gone"

在你onCheckboxClicked()設置TextView的知名度,VISIBLE

1

試試這個:

TextView tv; 
CheckBox cbS; 
OnClickListener checkBoxListener; 
checkBoxListener =new OnClickListener() { 

@Override 
public void onClick(View v) { 
tv=(TextView)findViewById(R.id.tvDetails); 
//by default keep textview visibility as invisible in xml file; 
tv.setVisibility(View.GONE) 
}; 

cbS.setOnClickListener(checkBoxListener); 
0

這應該對你有幫助。試試這個..

checkBxAutomaticLogin 
      .setOnCheckedChangeListener(new OnCheckedChangeListener() { 
       public void onCheckedChanged(CompoundButton buttonView, 
         boolean isChecked) { 
        if (isChecked) { 
         ViewGroup automaticLoginLyt = (ViewGroup) findViewById(R.id.yourlayout); 
         LayoutInflater.from(SomeActivity.this).inflate(
           R.layout.your_layout, 
           automaticLoginLyt, true); 
         editTxtUsername = (EditText) findViewById(R.id.edit_txt_user_name); 
         editTxtPassword = (EditText) findViewById(R.id.edit_txt_password); 
        } else { 
         ViewGroup automaticLoginLyt = (ViewGroup) findViewById(R.id.your_layout); 
         View v = automaticLoginLyt 
           .findViewById(R.id.your_layout); 
         if (v != null) { 
          automaticLoginLyt 
            .removeView(v); 
         } 
        } 
       } 
      }); 
0

你可以試試這個

holder.checkBox.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (holder.checkBox.isChecked()==true){ 

       holder.title.setPaintFlags(holder.title.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); 
      } 
      else { 

       holder.title.setPaintFlags(holder.title.getPaintFlags() & (~Paint.STRIKE_THRU_TEXT_FLAG)); 
      } 
     } 
    }); 
0

,我認爲這可以幫助你......

holder.checkBox.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (holder.checkBox.isChecked()==true){ 

       holder.title.setPaintFlags(holder.title.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); 
      } 
      else { 

       holder.title.setPaintFlags(holder.title.getPaintFlags() & (~Paint.STRIKE_THRU_TEXT_FLAG)); 
      } 
     } 
    }); 
相關問題