【问题标题】:I want to start camera, onClick event used in item of Listview我想启动相机,Listview 项目中使用的 onClick 事件
【发布时间】:2016-03-23 05:39:11
【问题描述】:

我想启动相机,在 Listview 项目中使用的 onClick 事件。但显示方法 startActivity(Intent) 未定义新 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;
    }    
}

【问题讨论】:

  • 这是一个语法错误,方法 startActivity(Intent) 未定义为 new View.OnClickListener() 类型。
  • 从此链接获得了解决方案。感谢 PX 开发人员stackoverflow.com/questions/17190268/…

标签: android listview


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    在行中 imgcamera.setOnClickListener(new OnClickListener() { 您还没有添加 view.onclickListner。 有关为 imageview 添加 onclick 列表器的详细信息,请查看此内容。 How to Set onClicklistener Method of ImageView in Android? imgcamera.setOnClickListener(new View.OnClickListener(){

    【讨论】:

      【解决方案3】:

      将上下文放在 startActivity context.startActivity

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-14
        • 1970-01-01
        • 1970-01-01
        • 2018-06-27
        • 1970-01-01
        • 2012-08-20
        • 1970-01-01
        相关资源
        最近更新 更多