解决方案 »
- Android 如何实现两个录音器同时录音?
- Android GSensor游戏的方向问题—高手进!
- menu的问题。
- 使用registerForContextMenu()方法注册上下文菜单出现“应用程序意外停止”错误
- android可以访问系统权限,需要好心人解惑
- ListView添加项与删除项
- android Notification点击事件
- 在android中使用AsyncTask从网络中下载图片,但是调用了execute方法后,最后不执行onPostExcute方法
- win7环境搭建Andriod ADT 22.6.2,layout出不来
- Android Service和BroadCast小程序为什么在新建的时候没有任何日志输出呢?
- requestSingleUpdate
- android 中如何实现立即刷新重绘面板
顺便我来说一下: 把把所有图片ID都放在一个Vector里面,然后点击删除时,就把那个图片ID从Vector中删除,同时让Vector的size减1,然后在gallery对应的adapter里面notifyDataSetChanged()一下子,就实现了。
而且自然的写法应该是在Gallery的setOnclicklistener中实现点击操作:
// Set a item click listener, and just Toast the clicked position
g.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView parent, View v, int position, long id) {
Toast.makeText(Gallery1.this, "" + position, Toast.LENGTH_SHORT).show();
}
});
说一下怎么解决楼主的问题,可以在ImageAdapte里加一个public方法delCurrentPic():
void delCurrentPic() {
lis.remove(position);
}
然后在setOnClickListener的onClick方法中调用m_ImageAdapter.delCurrentPic();
数据:
Vector<Integer> ImageIDs;
ImageView iv;
BaseAdapter ba;onCreate()中进行数据初始化:
ImageIDs=new Vector <Integer>(5,1);
ImageIDs.add(R.drawable.demo_0);
ImageIDs.add(R.drawable.demo_1);
ImageIDs.add(R.drawable.demo_2);
ImageIDs.add(R.drawable.demo_3);
ImageIDs.add(R.drawable.add_card);安钮添加图片方法:
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.add_card:
ImageIDs.add(R.drawable.new_card);
ba.notifyDataSetChanged();
break;___________________
gallery与adapter的绑定:
Gallery g1=(Gallery) this.findViewById(R.id.Gallery01);
ba=new BaseAdapter() {
@Override
public int getCount() {
// TODO Auto-generated method stub
return ImageIDs.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
CurrentPosition=position;
Log.i("CurrentPosition", Integer.toString(position));
iv=new ImageView(Sample_5_8.this);
iv.setImageResource(ImageIDs.get(position));
iv.setScaleType(ImageView.ScaleType.FIT_XY);
iv.setLayoutParams(new Gallery.LayoutParams(188, 250));
return iv;
}
};
g1.setAdapter(ba); 我觉得删除可能和添加差不太多,主要是图片ID的数组的动态添加和删除,不太好弄吧~
可能要好好学一下vector向量的操作
void delCurrentPic() {
lis.remove(curBirmapID);
}在Gallery的setOnclicklistener中是这样写。
/* 设定一个itemclickListener事件 */
g.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent, View v, int position, long id)
{
curBirmapID = position;
Toast.makeText(Testgallery.this, String.valueOf(curBirmapID), Toast.LENGTH_SHORT).show();
} });
lis.remove(curBirmapID);出错就是:
curBirmapID cannot be resolved
这样做是可以的。不知道刚才是什么问题,可能是eclipse的bug。我从新加载一下工程就好了。xjanker2谢谢你呀!