Android 如何从listview获取选中项
这是我的代码,从另一个活动接收数组列表并将其显示在列表视图中Android 如何从listview获取选中项,android,listview,checkbox,Android,Listview,Checkbox,这是我的代码,从另一个活动接收数组列表并将其显示在列表视图中 public class ItemFavouriteList extends Activity{ ListView favouritelist; LazyAdapter3 adapter; ArrayList<HashMap<String, String>> itemfavouriteALL; @Override protected void onCreate
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);
}
}
公共类ItemFavoriteList扩展活动{
列表视图收藏夹列表;
LazyAdapter3适配器;
ArrayList ItemFavoriteAll;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u item\u Favorite\u list);
FavoriteList=(ListView)findViewById(R.id.listView1);
ItemFavoriteAll=ItemsView.ItemFavorite;
适配器=新LazyAdapter3(itemFavoriteList.this,itemFavoriteAll);
FavoriteList.setAdapter(适配器);
}
}
下面是列表中每一行的布局“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;
}
}
公共类LazyAdapter3扩展了BaseAdapter{
私人活动;
私有数组列表数据;
专用静态充气机=空;
公共懒散适配器3(活动a,阵列列表d){
活动=a;
数据=d;
充气器=(LayoutInflater)activity.getSystemService(Context.LAYOUT\u充气器\u SERVICE);
}
public int getCount(){
返回data.size();
}
公共对象getItem(int位置){
返回位置;
}
公共长getItemId(int位置){
返回位置;
}
公共视图getView(int位置、视图转换视图、视图组父视图){
视图vi=转换视图;
if(convertView==null)
vi=充气机充气(R.layout.list_item3,空);
TextView itemid=(TextView)vi.findviewbyd(R.id.itemid);
TextView itemname=(TextView)vi.findViewById(R.id.item_name);
TextView itemdesc=(TextView)vi.findViewById(R.id.item_desc);
TextView项目价格=(TextView)vi.findViewById(R.id.item_价格);
HashMap showdata=新HashMap();
showdata=data.get(位置);
//在listview中设置所有值
setText(showdata.get(ItemsView.TAG_ITEM_ID));
itemname.setText(showdata.get(ItemsView.TAG_ITEM_NAME_EN));
itemdesc.setText(showdata.get(ItemsView.TAG_ITEM_DESC));
setText(showdata.get(ItemsView.TAG_ITEM_PRICE));
返回vi;
}
}
如何获取每个选中复选框的项目id?在复选框上添加OnCheckedChangeListener,您可以在getView中执行此操作。然后创建一个ArrayList,并将选中/未选中的项添加/删除到新的ArrayList。您应该将ArrayList添加到适配器子类中(以便让适配器保持ListView的状态)