Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自定义listview中的OnClicklistener无法写入_Java_Android_Listview_Android Listview - Fatal编程技术网

Java 自定义listview中的OnClicklistener无法写入

Java 自定义listview中的OnClicklistener无法写入,java,android,listview,android-listview,Java,Android,Listview,Android Listview,我尝试在自定义列表视图中使用单击按钮。 但它不起作用。 例如,当我单击“按钮”来更改另一个按钮的文本时,它的工作对listview中的另一行也是如此! 这是我在课堂上的onclick监听器: holder.btnLike.setOnClickListener( new OnClickListener() { int clicks = 0; @Override public void onClick(V

我尝试在自定义列表视图中使用单击按钮。 但它不起作用。 例如,当我单击“按钮”来更改另一个按钮的文本时,它的工作对listview中的另一行也是如此! 这是我在课堂上的onclick监听器:

holder.btnLike.setOnClickListener( new OnClickListener() {
                int clicks = 0;
                @Override
                public void onClick(View arg0) {


                    clicks = clicks + 1;
                    if(clicks == 1){

                    }else if(clicks == 2) {
                        LikeToast.makeText(context, "Liked" , Toast.LENGTH_SHORT).show();
                        holder.btnLike.setText("Liked");
                        Drawable image = context.getResources().getDrawable( R.drawable.ic_action_liked );
                        int hlike = image.getIntrinsicHeight(); 
                        int wlike = image.getIntrinsicWidth();   
                        image.setBounds( 0, 0, wlike, hlike );
                        holder.btnLike.setCompoundDrawables( image, null, null, null );
                        //holder.btnLikes.setBackgroundDrawable(R.drawable.ic_action_liked);
                    } else{
                       clicks = 2;
                   }
                }
            });
还有我的VoteListAdapter.class:


请帮助我。

您需要返回您正在单击的行,并为该位置设置onclick侦听器,当前您的onclick为所有行激发

l.setAdapter(bAdaptor);

        l.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Batches bi = (Batches) parent.getAdapter().getItem(position);

                //Do what you want here

            }
        });

只需将下面的内容添加到您已声明按钮的xml文件中。。。。发生这种情况是因为按钮单击侦听器不工作,它实际上是作为整个listview的

android:focusable="false"
android:focusableInTouchMode="false"

希望它能帮上忙…

我怎么用这个?!在声明适配器时使用此选项,因此l是我活动的listview,然后我设置适配器bAdapter,这是一个自定义适配器,并在设置适配器后调用侦听器。显示初始化ListView的代码在哪个按钮上执行操作从这里向我提及名称。
android:focusable="false"
android:focusableInTouchMode="false"