Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.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
Android Listview中每个按钮的setOnclicklistener_Android_Button_Android Listview - Fatal编程技术网

Android Listview中每个按钮的setOnclicklistener

Android Listview中每个按钮的setOnclicklistener,android,button,android-listview,Android,Button,Android Listview,我面临android listview的问题。我的列表视图中有多个按钮,我想为每个按钮设置ClickListener并检索它们在列表视图中的位置 ListItem.xml <Button xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/btnList" android:layout_width="match_parent" android:layout_heigh

我面临android listview的问题。我的列表视图中有多个按钮,我想为每个按钮设置ClickListener并检索它们在列表视图中的位置

ListItem.xml

<Button xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/btnList"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:textColor="#fff" />
DrawerItemClickListener

btnList.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) 
            {
               new DrawerItemClickListener();   
            }
        });
private static class DrawerItemClickListener implements
            ListView.OnItemClickListener  {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {
        MainActivity main= new MainActivity();
        main.selectItem(position);
        }
    }
私有静态类DrawerItemClickListener实现
ListView.com侦听器{
@凌驾
public void onItemClick(AdapterView父视图、视图、整型位置、,
长id){
MainActivity main=新的MainActivity();
main.选择项目(位置);
}
}

使用此选项,OnItemClick中的位置就是按钮在列表中的位置

listview.setOnItemClickListener(new OnItemClickListener() {

    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
    }
listview.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView AdapterView,视图视图,整型位置,长id){
}

您需要在listview适配器的getview中处理按钮的点击侦听器,在这里您可以使用view.findViewById(R.id.yourbutonid)找到按钮。 这就是你可以做到的:

Button yourButton= (Button) rowView.findViewById(R.id.yourButtonID); // be carefull to use the view of the listItem and not the activity in case the adapter is inside the Activity.
yourButton.setTag(position);// Any data associated with the button has to be added with setTag()
yourButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {
                      Log.w("DEBUG_TAG", "Button Clicked at position : " + position);
                      //here you must use getTag() in order to extract the data set in the setTag()
            }
        });

发布您的代码和您尝试过的内容。@Raghunandan我可以编辑上面的代码)以及您面临的问题是什么?当我在listview中单击按钮时。什么都没有发生
MainActivity main=new MainActivity();
是错误的。另外,您单击一个按钮,您就有了
new draweritemclicklinklistener();
你完全糊涂了。你需要在抽屉项目点击上打开一个特定的活动。请发布你需要的内容。它非常不明确@Vaseph似乎只是想让听众参与其中(按钮)@FD_uu是的,你理解我)。@Vaseph我的回答有帮助吗?我现在添加了更多细节。
Button yourButton= (Button) rowView.findViewById(R.id.yourButtonID); // be carefull to use the view of the listItem and not the activity in case the adapter is inside the Activity.
yourButton.setTag(position);// Any data associated with the button has to be added with setTag()
yourButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {
                      Log.w("DEBUG_TAG", "Button Clicked at position : " + position);
                      //here you must use getTag() in order to extract the data set in the setTag()
            }
        });