2015-02-23 73 views
-1

我想做一個考勤加任務系統。爲此,我使用了複選框和線性佈局。線性佈局用於動態添加編輯文本框。當一個複選框被選中時,一個新的文本字段是可見的,當它被取消選中時,文本字段必須被隱藏。我已經使用的代碼部分的東西像這樣:現在如何在android中隱藏動態創建的EditText框?

public void onCheckBoxClicked(View v) { 
    boolean checked = ((CheckBox) v).isChecked(); 
    EditText tv; 
    tv = new EditText(this); 
    tv.setLayoutParams(new RadioGroup.LayoutParams(RadioGroup.LayoutParams.WRAP_CONTENT, 
       RadioGroup.LayoutParams.WRAP_CONTENT)); 
tv.setText(one.getText().toString()+ "'s task today?"); 
tv.setBackgroundColor(0xff66ff66); // hex color 0xAARRGGBB 
tv.setPadding(20, 20, 20, 20);// in pixels (left, top, right, bottom) 

switch (v.getId()) { 

case R.id.checkBox1: 
if(checked) { 
list.addView(tv); 
Toast.makeText(getApplicationContext(), one.getText().toString() + " is present", Toast.LENGTH_SHORT).show(); 
    } 

if(!checked) { 
tv.setVisibility(EditText.GONE); //problem exists here--is not executing 
Toast.makeText(getApplicationContext(), one.getText().toString() + " is absent", Toast.LENGTH_SHORT).show(); 
       } 

       break; 

,我可以很容易地得到一個編輯的文本字段當我檢查盒子,但在取消選中它,編輯文本字段不躲。我該如何解決它?

+0

嘗試View.GONE .. – rafid059 2015-02-23 10:01:02

+0

我試過了。視圖也不起作用。 – 2015-02-23 10:04:30

+0

嘗試使用'checkBox1.isChecked()'而不是'checked' – 2015-02-23 10:10:44

回答

0

這是因爲您每次點擊某個複選框時都會創建新的EditText。您正試圖隱藏甚至沒有顯示/添加的EditText。得到它了!!

嘗試使您的EditText tv = new EditText(this); editText作爲類變量,在onCreate中創建它。然後當你需要時你可以隱藏/顯示。

它看起來像下面的代碼。

EditText tv; 
onCreate(.......){ 
.............. 

tv = new EditText(this); 
.............. 
} 

,然後使用這個tvonCheckBoxClicked方法,而不是創建一個在此方法。

+0

非常感謝。它解決了我的問題。 (Y) – 2015-02-23 10:10:52

+0

接受答案,如果它解決你的答案。快樂編碼 – AAnkit 2015-02-23 10:13:46

相關問題