2

こんにちは私はAndroidアプリで動的な数のチェックボックス(配列の「ジャンル」の長さに依存します)を作成したいので、次のようにしました。

CheckBox [] checkbox;
String [] genre={"party","sport","music","café","education"};

@Override
protected void onCreate(Bundle savedInstanceState) {
    checkbox=new CheckBox[genre.length];
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_checkbox);
    for(int i=0;i<genre.length;i++){
        CheckBox c=new CheckBox(this);
        c.setText(genre[i]);
        checkbox[i]=c;  
    }
     ArrayAdapter<CheckBox>adapter= new ArrayAdapter<CheckBox>(this, android.R.layout.simple_list_item_1,checkbox);
     ListView lv= (ListView)findViewById(R.id.genre_list);
     lv.setAdapter(adapter);
}

しかし、リストビューでは、メモリ内のチェックボックスの数が表示されます(私は推測します)、なぜですか?

like : Android.wiget.CheckBox@44f03160
       Android.wiget.CheckBox@44f03d60
      ...
4

3 に答える 3

0

android.R.simple_list_item_checkedアイテム レイアウトを使用して、リストで複数選択を有効にしたい場合は、次のようにします。

String [] genre={"party","sport","music","café","education"};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_checkbox);
    ArrayAdapter<String> adapter= new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked, genre);
    ListView lv= (ListView)findViewById(R.id.genre_list);
    lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    lv.setAdapter(adapter);
}

このようにして、自分でチェックボックスを手動で作成する必要はありません

于 2012-11-20T13:56:58.037 に答える
0

このラインのせいで

 c.setText(genre[i]);
于 2012-11-20T13:57:43.807 に答える
0
String [] genre={"party","sport","music","café","education"};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_checkbox);
    ArrayAdapter<String> adapter= new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, genre);
    ListView lv= (ListView)findViewById(R.id.genre_list);
    lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    lv.setAdapter(adapter);
}



This looks like checkboxes.
于 2015-11-05T15:03:53.617 に答える