2014-02-04 2 views
0

это мой код, получает список массивов из другого вида деятельности и отображает его в виде списка.Как получить отмеченный элемент из списка

public class ItemFavouriteList extends Activity{ 

    ListView favouritelist; 
    LazyAdapter3 adapter; 
    ArrayList<HashMap<String, String>> itemfavouriteALL; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_item_favourite_list); 

     favouritelist = (ListView) findViewById(R.id.listView1); 
     itemfavouriteALL = ItemsView.itemfavourite; 

     adapter = new LazyAdapter3(ItemFavouriteList.this,itemfavouriteALL); 

     favouritelist.setAdapter(adapter); 
    } 
} 

вот код для макета «xml» для каждой строки списка.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@drawable/list_selector" 
    android:orientation="horizontal" 
    android:padding="5dip" > 

    <!-- ListRow Left sied Thumbnail image --> 


    <!-- Title Of Song --> 

    <TextView 
     android:id="@+id/item_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="category name" 
     android:textColor="#040404" 
     android:textSize="25dip" 
     android:textStyle="bold" 
     android:typeface="sans" /> 

    <TextView 
     android:id="@+id/itemId" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/item_name" 
     android:layout_marginTop="1dip" 
     android:textColor="@android:color/transparent" 
     android:textSize="10dip" /> 

    <!-- Artist Name --> 

    <TextView 
     android:id="@+id/item_desc" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/item_name" 
     android:layout_marginTop="1dip" 
     android:layout_toLeftOf="@+id/ck_final_lits" 
     android:text="Just " 
     android:textColor="#343434" 
     android:textSize="20dip" /> 

    <!-- Rightend Duration --> 


    <!-- Rightend Arrow --> 

    <CheckBox 
     android:id="@+id/ck_final_lits" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/item_name" 
     android:layout_alignBottom="@+id/item_name" 
     android:layout_alignParentRight="true" 
     android:text="@string/empty" /> 

    <TextView 
     android:id="@+id/item_price" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/item_desc" 
     android:layout_alignBottom="@+id/item_desc" 
     android:layout_alignParentRight="true" 
     android:text="@string/wwww1" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

</RelativeLayout> 

и этот адаптер я использую.

public class LazyAdapter3 extends BaseAdapter { 

    private Activity activity; 
    private ArrayList<HashMap<String, String>> data; 
    private static LayoutInflater inflater=null; 

    public LazyAdapter3(Activity a, ArrayList<HashMap<String, String>> d) { 
     activity = a; 
     data=d; 
     inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    } 

    public int getCount() { 
     return data.size(); 
    } 

    public Object getItem(int position) { 
     return position; 
    } 

    public long getItemId(int position) { 
     return position; 
    } 

    public View getView(int position, View convertView, ViewGroup parent) { 
     View vi=convertView; 
     if(convertView==null) 
      vi = inflater.inflate(R.layout.list_item3, null); 

     TextView itemid = (TextView)vi.findViewById(R.id.itemId); 
     TextView itemname = (TextView)vi.findViewById(R.id.item_name); 
     TextView itemdesc = (TextView)vi.findViewById(R.id.item_desc); 
     TextView itemprice = (TextView)vi.findViewById(R.id.item_price); 

     HashMap<String, String> showdata = new HashMap<String, String>(); 
     showdata = data.get(position); 

     // Setting all values in listview 
     itemid.setText(showdata.get(ItemsView.TAG_ITEM_ID)); 
     itemname.setText(showdata.get(ItemsView.TAG_ITEM_NAME_EN)); 
     itemdesc.setText(showdata.get(ItemsView.TAG_ITEM_DESC)); 
     itemprice.setText(showdata.get(ItemsView.TAG_ITEM_PRICE)); 
     return vi; 
    } 
} 

Как я могу получить идентификатор элемента для каждого установленного флажка?

ответ

0

Добавьте OnCheckedChangeListener в свой CheckBox, вы можете сделать это в getView. Затем создайте ArrayList и добавьте/удалите элемент checked/unchecked в новый ArrayList.

+0

Вы должны добавить ArrayList в подкласс Adapter (чтобы адаптер поддерживал состояние ListView) – Massimo

Смежные вопросы