我正在开发一个应用程序,作为android编程的初学者。 我必须做一个图像的列表视图,2个文字和每行的复选框。 我必须在操作栏中实现一个继续按钮,所以当单击此按钮时,列表中所有选中的复选框将出现在另一个列表视图的提示对话框中。 我面临的问题是,我不知道如何知道哪个复选框被选中,所以我可以实现alertdialog。 任何人都可以帮助我吗?ListView with CheckBox
这是我的主要活动代码:
package com.example.view;
import java.util.ArrayList;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.ListView;
public class MainActivity extends ActionBarActivity {
public static final String TAG = MainActivity.class.getSimpleName();
ListView listView;
ArrayList<ListViewItem> items;
CustomListViewAdapter adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listView);
items = new ArrayList<MainActivity.ListViewItem>();
items.add(new ListViewItem(R.drawable.ic_launcher, "Item1", "Item1 Description"));
items.add(new ListViewItem(R.drawable.ic_launcher, "Item2", "Item2 Description"));
items.add(new ListViewItem(R.drawable.ic_launcher, "Item3", "Item3 Description"));
items.add(new ListViewItem(R.drawable.ic_launcher, "Item4", "Item4 Description"));
adapter = new CustomListViewAdapter(this, items);
listView.setAdapter(adapter);
}
class ListViewItem {
private int thumbnailResource;
private String title;
private String subTitle;
public ListViewItem()
{
}
public ListViewItem(int thumbnailResource, String title, String subTitle)
{
this.thumbnailResource = thumbnailResource;
this.title = title;
this.subTitle = subTitle;
}
public int getThumbnailResource()
{
return thumbnailResource;
}
public void setThumbnailResource(int thumbnailResource)
{
this.thumbnailResource = thumbnailResource;
}
public String getTitle()
{
return title;
}
public void setTitle(String title)
{
this.title = title;
}
public String getSubTitle()
{
return subTitle;
}
public void setSubTitle(String subTitle)
{
this.subTitle = subTitle;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_activity_actions_view, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.action_continue:
doContinue();
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
private void doContinue()
{
// open the alertdialog box depending on the items selected
}
}
,这是我的适配器代码:
package com.example.view;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.view.MainActivity.ListViewItem;
public class CustomListViewAdapter extends ArrayAdapter<ListViewItem>
{
LayoutInflater inflater;
ArrayList<ListViewItem> items;
public CheckBox checkBox;
public static final String TAG = MainActivity.class.getSimpleName();
public CustomListViewAdapter(Activity context, ArrayList<ListViewItem> items)
{
super(context, R.layout.list_item_row, items);
this.items = items;
this.inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public View getView(final int position, View convertView, ViewGroup parent)
{
//System.out.println(position);
ListViewItem item = items.get(position);
View rowview = inflater.inflate(R.layout.list_item_row, parent, false);
ImageView imgView = (ImageView) rowview.findViewById(R.id.imgThumbnail);
TextView txtTitle = (TextView) rowview.findViewById(R.id.txtTitle);
TextView txtSubTitle = (TextView) rowview.findViewById(R.id.txtSubTitle);
CheckBox checkBox = (CheckBox) rowview.findViewById(R.id.checkbox);
imgView.setImageResource(item.getThumbnailResource());
txtTitle.setText(item.getTitle());
txtSubTitle.setText(item.getSubTitle());
return rowview;
}
}
所以在那里,我怎么能写我的代码知道通过复选框选择哪些项目?
你能告诉我该怎么做吗?对不起,我是新来的..我不知道如何切换复选框到rowview以及如何使用setTag和getTag。 – user3783005
谢谢@Ammar – user3783005
@ user3783005检查代码plz – Ammar