Android 捕获图像后如何更改listview行图标?
我是android新手,能够通过点击按钮的相机意图程序实现正常的图像捕获。现在我想要的是,假设我有一个自定义listview,其中listview行包含textview和右边的imageview,如果我单击imageview,则在捕获图像后,设备的默认摄像头应打开,然后图像的路径应保存在数组中,这将继续进行,最重要的是,在返回imageview的listview活动图像(通过该图像触发摄像头意图)后,我希望看到的内容特定行项目的位置应根据位置进行更改,以通知用户已成功捕获图像并将其路径存储在数组中 任何帮助都将受到感谢。Android 捕获图像后如何更改listview行图标?,android,listview,android-camera-intent,onactivityresult,Android,Listview,Android Camera Intent,Onactivityresult,我是android新手,能够通过点击按钮的相机意图程序实现正常的图像捕获。现在我想要的是,假设我有一个自定义listview,其中listview行包含textview和右边的imageview,如果我单击imageview,则在捕获图像后,设备的默认摄像头应打开,然后图像的路径应保存在数组中,这将继续进行,最重要的是,在返回imageview的listview活动图像(通过该图像触发摄像头意图)后,我希望看到的内容特定行项目的位置应根据位置进行更改,以通知用户已成功捕获图像并将其路径存储在数组
提前谢谢 在捕获图像后使用setTag(position)设置imageview位置。通过imageview.getTag检索位置并将图像设置在该位置。在源活动中保存单击的位置。使用源活动的onActivityResult,使用一个标志更新数据,该标志指示已为给定位置捕获图像,并在适配器上调用notifyDataSetChanged()。在适配器的getView()中,检查标志并相应地更新视图 编辑:添加代码以保存单击的位置 MyAdapter.java 源活动
您需要存储单击的listview项的位置,并替换先前在onActivityResult中填充imageview所使用的同一项的数组中的图像路径,并调用adapter.notifydatasetchanged以再次呈现listview。@Vikramjiit感谢mate它确实对我有效最后我安装了它并得到了所需的结果。这个链接也对我很有帮助
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if(mData.get(position).isImageCaptured(){
// handle image captured case
} else {
// handle normal case
}
}
public void updateData(int position,String path){
MyObject obj = mData.get(position);
obj.setPath(path);
obj.setImageCaptured(true);
mData.set(position,obj);
notifyDataSetChanged();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == REQUEST_CODE_CAMERA){
mAdapter.updateData(mSelectedPosition,imagePath);
}
}
public void onInitiateImageCapture(int position){
//rest of the boilerplate code to create camera intent
mSelectedPosition = position;
startActivityForResult(cameraIntent, REQUEST_CODE_CAMERA);
}