2012-12-17 110 views
0

我已經做了一個體面的努力來找到類似的問題,並失敗了,所以請原諒我,如果這是多餘的污染。以編程方式更改列表視圖,使其可檢查

我有一個ListView和在XML文件中定義的 「my_layout」 相當於我的活動如下的ImageButton的:

<ListView 
    android:id="@+id/listViewItems" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    ></ListView> 

<ImageButton 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/btn_delete_dark" 
    android:id="@+id/buttonDelete" 
    android:layout_weight="1">  
</ImageButton> 

我再編程填充ListView在OnCreate ()方法如下:

public class ViewItemsActivity extends Activity實現OnClickListener, OnItemClickListener {

ImageButton buttonDelete; 
ListView listViewItems; 
DatabaseHandler dbHandler; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.my_layout); 

    buttonDeleteQuestion = (ImageButton) findViewById(R.id.buttonDelete); 
    listViewQuestions = (ListView) findViewById(R.id.listViewItems); 
    buttonDelete.setOnClickListener(this); 

    //get data from sql table containing items 
    dbHandler = new DatabaseHandler(this); 

    String [] items = dbHandler.getItems();  //get data to populate ListView 


    CustomAdapter adapter = new CustomAdapter(this, 
       android.R.layout.simple_list_item_1, items); 
    listViewItems.setAdapter(adapter); 
    listViewItems.setOnItemClickListener(this); 
} 

@Override 
public void onClick(View v) { 

     switch (v.getId()) {   
     case R.id.buttonDelete:   
     listViewItems.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
     listViewItems.setItemChecked(0, true); 
     break; 
     //other cases are irrelevant 
     } 

} 


@Override 
public void onItemClick(AdapterView<?> parent, View v, int pos, long id) { 
    // TODO Auto-generated method stub 

    //non relevant code 
} 

}

一切正常,因爲它應該只是我想ListView的改變,在外觀和功能,只要點擊buttonDelete的結果,使其顯示覆選標記每個權行可以通過點擊進行檢查。

這是我的理解,setChoiceMode(ListView.MULTIPLE_CHOICE)和setItemChecked(我,真)會有這種效果,但顯然我錯過了一些東西,因爲它沒有。

我對android非常陌生,所以有可能我浪費了一些時間與瑣事,爲此我表示歉意。

非常感謝。

回答

0

的解決方案是非常簡單的,並且是:

對應於buttonDelete onClick事件

,我只是創造了一個新的適配器,其佈局ID是* simple_list_item_multiple_choice *,並將其與線

分配給ListView
CustomAdapter adapter = new CustomAdapter(this, 
      android.R.layout.simple_list_item_multiple_choice, items); 
listViewItems.setAdapter(adapter); 

這是做了什麼。

相關問題