我想启动相机,在Listview项目中使用的onClick事件



我想启动相机,在Listview项中使用的onClick事件。但是显示方法startActivity(Intent)对于类型new View.OnClickListener()是未定义的。我的适配器代码在这里。

public class MessageListAdapter extends ArrayAdapter<RowItem1> {
    Context context;
    public MessageListAdapter(Context context, int resourceId,
            List<RowItem1> items) {
        super(context, resourceId, items);
        this.context = context;
    }
    /*private view holder class*/
    private class ViewHolder {
        ImageView imagep ;
        TextView name;
        TextView date1;
        TextView time;
    }
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder = null;
        RowItem1 rowItem = getItem(position);
        LayoutInflater mInflater = (LayoutInflater) context
                .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.single_list_message, null);
            ImageView imgcamera= (ImageView) convertView.findViewById(R.id.img_camera);
           imgcamera.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
                    startActivity(intent);
                }
            });
            holder = new ViewHolder();
            holder.name = (TextView) convertView.findViewById(R.id.txt_name);
            holder.date1 = (TextView) convertView.findViewById(R.id.txt_Date);
            holder.time = (TextView) convertView.findViewById(R.id.txt_time);
            holder.imagep = (ImageView) convertView.findViewById(R.id.img_person);
            holder.imagecam = (ImageView) convertView.findViewById(R.id.img_camera);
            convertView.setTag(holder);
        } else
            holder = (ViewHolder) convertView.getTag();
        holder.name.setText(rowItem.getName());
        holder.date1.setText(rowItem.getDate1());
        holder.imagep.setImageResource(rowItem.getImagep());
        holder.imagecam.setImageResource(rowItem.getImagecam());
        holder.time.setText(rowItem.getTime());
        return convertView;
    }    
}

我建议您将imgcamera.setOnClickListener移动到if块之外。此回调仅在convertview为null时运行(仅第一次),但无论convertview的值如何,每次都应该运行。希望能有所帮助。

在行中imgcamera.setOnClickListener(新的OnClickListen(){您尚未添加view.onclickListner。有关为imageview添加onclick-listner的详细信息,请查看以下内容。如何在Android中设置ImageView的onClicklistener方法?imgcamera.setOnClickListener(new View.OnClickListener(){

将上下文置于startActivity context.startActivity 之前

最新更新