2017-09-25 61 views
1

我想動態創建根據我在「顏色」微調器中選擇的項目創建複選框。無法「檢查」動態創建的複選框

例如:如果我選擇在我的飛旋「紅」,下面的複選框將被創建:蘋果[],草莓[],櫻桃[]。如果我選擇「黃色」從teh微調框,將創建以下複選框:香蕉[],菠蘿[]

我的代碼在我運行時正常運行並顯示列出的項目,但爲什麼當我按下它們時,我的動態生成複選框「無法檢查」?這個小小的「複選標記」根本沒有出現在框中。

private Fruits fruit = new Fruits(); 

final GridView gv = (GridView) findViewById(R.id.gv); 
Spinner sp = (Spinner) findViewById(R.id.sp); 

sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

    @Override 
    public void onItemSelected(AdapterView<?> adapterView, View v, int pos, long l){ 

     String item = (String) adapterView.getItemAtPosition(pos); 
     List<String> myList = fruit.getFruits(item); 

     ArrayAdapter<String> adapter_1 = new ArrayAdapter<String>(Activity_1.this, android.R.layout.simple_list_item_multiple_choice, myList); 
     gv.setAdapter(adapter_1); 
    } 

編輯:

我使用的是Fruits Java類來生成我複選框項目:

public class Fruits { 
    List<String> getFruits(String colour) { 
     List<String> fruit = new ArrayList<String>(); 

     if (colour.equals("red")) { 
      fruit.add("Apple"); 
      fruit.add("Strawberry"); 
      fruit.add("Cherry"); 
     } 
     else if (colour.equals("yellow") { 
      fruit.add("Banana"); 
      fruit.add("Pineapple"); 
     } 

     return fruit; 

    } 
} 

我不使用string.xml文件,以填補我的複選框的項目。

+0

我可能會錯過某些東西,但它看起來像是在創建一個字符串列表而不是複選框。 你在哪裏動態創建複選框? –

+0

啊,我不太確定tbh。我剛開始使用Android編程。我是否會這樣做:'CheckBox chk = new CheckBox();'onItemSelected'內部? – 5120bee

+0

一般情況下是這樣的。 自從我做Android工作已經有一段時間了,我不在我的工作站旁邊檢查它。 但一般來說,您需要創建新的視圖,在這種情況下,複選框,然後將其添加到任何你想要的視圖,例如GridView。 然後它應該工作 –

回答

1

使CheckBox選擇你需要添加setChecked.Inside您onItemSelected添加以下代碼,使之在你的代碼中選擇

checkbox.setChecked(true); 

而且我覺得沒有動態創建檢查box.If要動態創建複選框然後像這樣創建

CheckBox checkbox = new CheckBox(this); 
checkboxsetText("created new checkbox"); 
+0

如何將檢查框的文本值傳遞給我的下一個活動? – 5120bee

+0

每當點擊某物時,將該位置的列表項目傳遞給下一個活動 – Anonymous