类型View中的方法setOnClickListener(View.OnClickListener)不适用于参数(new DialogInterface.OnClickListener(){})

时间:2014-02-07 15:46:04

标签: java android listview onclick onclicklistener

尝试将onClickListener添加到listView中的项目,我收到错误消息:"The method setOnClickListener(View.OnClickListener) in the type View is not applicable for the arguments (new DialogInterface.OnClickListener(){})"就行了:

 holder.imageView.setOnClickListener(new OnClickListener() {

本文作者提到了以下内容:

In your custom adapter class, you can try this code inside getView() method
[java]holder.imageView.setOnClickListener(new OnClickListener() {   
@Override
public void onClick(View v) {
Toast.makeText(context, "Clicked on image", Toast.LENGTH_LONG).show();
}
});[/java]

似乎我可能需要修改我当前的实现 - 我只是不确定如何。

来源:

public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        LayoutInflater inflater = context.getLayoutInflater();
        if (convertView == null) {
            convertView = inflater.inflate(R.layout.list_item2, null);
            holder = new ViewHolder();
            holder.txtSuccess = (TextView) convertView
                    .findViewById(R.id.success);
            holder.txtCmd = (TextView) convertView.findViewById(R.id.cmd);
            holder.txtPrice = (TextView) convertView.findViewById(R.id.price);
            holder.imageView = (ImageView) convertView
                    .findViewById(R.id.thumbnail);
            convertView.setTag(holder);
            holder.imageView.setOnClickListener(new OnClickListener() {

                public void onClick(View v) {
                    Toast.makeText(context, "Clicked on image",
                            Toast.LENGTH_LONG).show();
                }

2 个答案:

答案 0 :(得分:4)

你可能错了import。检查您是否已导入DialogInterface.OnClickListener。你仍然可以用这种方式明确强制参数:

holder.imageView.setOnClickListener(new View.OnClickListener() {
   public void onClick(View v) {
         Toast.makeText(context, "Clicked on image",
                Toast.LENGTH_LONG).show();
   }

答案 1 :(得分:0)

使用View.OnClickListener代替OnClickListener

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

                public void onClick(View v) {
                    Toast.makeText(context, "Clicked on image",
                            Toast.LENGTH_LONG).show();
                }

并使用CTL+SHIFT+O修复所有导入