我如何从GridView的返回位置获得图像的URI



i当前有一个gridview,将图像位置/ID返回到父活动。我还想将URI返回或提取到父活动中,并将其设置为可以在父活动中其他地方解析的变量。我一直在寻找一些,但找不到一个适合我尝试的解决方案。

我的GridView儿童活动返回位置

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.grid_layout);
    GridView gridView = (GridView) findViewById(R.id.grid_view);
    // Instance of ImageAdapter Class
    gridView.setAdapter(new ImageAdapter(this));
    /**
     * On Click event for Single Gridview Item
     * */
    gridView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View v,
                int position, long id) {

            Intent data = new Intent(PicPicker2.this, PictureActivity.class);
            // passing array index
            data.putExtra("id", position);
            setResult(Activity.RESULT_OK, data);
            finish();
        }
    });
}

}

我目前在父级活动中捕获结果

            else if (reqCode == 2) {

                // Selected image id
                int position = data.getExtras().getInt("id");
                ImageAdapter imageAdapter = new ImageAdapter(this);
                ChosenImageView.setImageResource(imageAdapter.mThumbIds[position]);
              }
            }
        }     

我想解析变量

        Uri attached_Uri = Uri.parse("SOME VARIABLE OF THE RETURNED URI");

我想将uri nouri nested_uri = uri.parse()设置为gridview中单击的项目。我只是一个周末的Android Tinkerer试图学习平台的概念,因此解释和示例对我来说很长一段路,非常感谢。

添加了我的成像制品

公共类成像制品扩展了Baseadapter {

private Context mContext;

// Keep all Images in array
public Integer[] mThumbIds = {
        R.drawable.pic_1, R.drawable.pic_2,
        R.drawable.pic_3, R.drawable.pic_4,
        R.drawable.pic_5, R.drawable.pic_6,
        R.drawable.pic_7, R.drawable.pic_8,
        R.drawable.pic_9, R.drawable.pic_10,
        R.drawable.pic_11, R.drawable.pic_12,
        R.drawable.pic_13, R.drawable.pic_14,
        R.drawable.pic_15
};
// Constructor
public ImageAdapter(Context c){
    mContext = c;
}
@Override
public int getCount() {
    return mThumbIds.length;
}
@Override
public Object getItem(int position) {
    return mThumbIds[position];
}
@Override
public long getItemId(int position) {
    return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView = new ImageView(mContext);
    imageView.setImageResource(mThumbIds[position]);
    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
    imageView.setLayoutParams(new GridView.LayoutParams(70, 70));
    return imageView;
}

}

您正在使用资源作为图像,因此URI为"android.resource://your.package.name/resource_id"表格。更具体地说,可以说您在变量position中具有图像的索引(就像在onClick方法中一样),并且您在mImageAdapter中拥有ImageAdapter的实例(请注意,在您的情况下,您只需创建一个适配器的新副本,但通常您需要使用常见实例)。那么以下将使您的Uri

Uri imageUri = Uri.parse("android.resource://your.package.name/" + 
     mImageAdapter.getItem(position));

在上面的代码中"your.package.name"AndroidManifest.xml文件中定义的软件包的名称。

最新更新