使用intent从listview调用图库

时间:2014-05-20 09:08:46

标签: android listview android-intent android-listview

我有一个应用程序,它包含一个活动和一个用于实现listview的适配器类。 现在在listview中,当我点击列表视图时,我需要使用intent从设备打开图库。 但问题是当我从适配器类调用intent时,如何编写onActivityResult()。这是我的代码`

public class VehicleAdapter extends BaseAdapter
{
public View getView(final int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub

        final ViewHolder holder;
        if(convertView==null)
        {
            holder = new ViewHolder();
            convertView = inflater.inflate(R.layout.list_item, null);

            holder.image = (ImageView) convertView.findViewById(R.id.imageView);
            holder.txtName = (TextView) convertView.findViewById(R.id.textView);
            holder.btn = (Button) convertView.findViewById(R.id.button);
            holder.row = (RelativeLayout) convertView.findViewById(R.id.lineItem);
            convertView.setTag(holder);
        }
        else
            holder=(ViewHolder)convertView.getTag();

        holder.image.setImageBitmap(getImageId().get(position));
        holder.txtName.setText(arr_calllog_name.get(position));

        holder.btn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent i = new Intent(
                        Intent.ACTION_PICK,
                        android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

                startActivityForResult(i, 0);
                //arr_cars.remove(position);
                myadapter.notifyDataSetChanged();
                Toast.makeText(getApplicationContext(), "You have deleted row No. "+ position, Toast.LENGTH_SHORT).show();
            }
        });`

1 个答案:

答案 0 :(得分:0)

您应该在活动中而不是在适配器中设置列表视图单击处理程序,将信息存储在项目的标记中,然后在列表中单击某个项目时,您将能够访问该信息并接收onActivityResult事件。​​