我正在尝试向用户显示SD卡上的图像列表,允许他们选择多个图像,然后将这些选择的图像存储在一个数组中。你能在这方面给我一些帮助吗?
公共类selectimages扩展了Activity {
//---the images to display--- Integer[] imageIDs = { R.drawable.a\_1, R.drawable.a\_2, R.drawable.a\_3, R.drawable.a\_4, R.drawable.a\_5, R.drawable.a\_6, R.drawable.a\_7
};
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.selectimages);
ListView listview = (ListView) findViewById(R.id.listview);
listview.setAdapter(new ImageAdapter(this));
listview.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView parent,
View v, int position, long id)
{
Toast.makeText(getBaseContext(),
"pic" + (position + 1) + " selected",
Toast.LENGTH_SHORT).show();
}
});
}
public class ImageAdapter extends BaseAdapter
{
private Context context;
public ImageAdapter(Context c)
{
context = c;
}
//---returns the number of images---
public int getCount() {
return imageIDs.length;
}
//---returns the ID of an item---
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
//---returns an ImageView view---
public View getView(int position, View convertView, ViewGroup parent)
{
ImageView imageView;
if (convertView == null) {
imageView = new ImageView(context);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(5, 5, 5, 5);
} else {
imageView = (ImageView) convertView;
}
imageView.setImageResource(imageIDs[position]);
return imageView;
}
}
}
发布于 2011-04-03 18:02:51
看,获取Listview的检查值:previous question。
达伦·罗宾斯写道:
int len = listView.getCount();
SparseBooleanArray checked = listView.getCheckedItemPositions();
for (int i = 0; i < len; i++)
if (checked.get(i)) {
String item = cont_list.get(i);
/* do whatever you want with the checked item */
}
发布于 2011-04-03 17:19:15
你可以使用自定义的列表视图布局将这些图像加载到列表视图中,然后在每个图像旁边放置一个复选框,这意味着checkbox...whenever用户选择了该列表视图中的图像。这是你想要的吗?
https://stackoverflow.com/questions/5531090
复制