android wear gridviewpager onClick Listener

android wear gridviewpager onClick Listener,android,onclicklistener,wear-os,Android,Onclicklistener,Wear Os,我正在开发一个简单的应用程序,你可以在谷歌地图上找到不同的位置。 当我点击一个点时,我会得到它的详细信息,这些信息会显示在GridViewPager中。 目前,我的应用程序基于sdk提供的GridViewPager示例 这是我的现场细节布局(没什么特别的) 我还尝试了View.OnClickListener 你知道吗?这里有两个问题。首先,如果你真的想让GridViewPager可点击,你需要告诉它去监听点击事件——仅仅实现OnClickListener接口是不够的。所以你需要这样做: publ

我正在开发一个简单的应用程序,你可以在谷歌地图上找到不同的位置。 当我点击一个点时,我会得到它的详细信息,这些信息会显示在GridViewPager中。 目前,我的应用程序基于sdk提供的GridViewPager示例

这是我的现场细节布局(没什么特别的)

我还尝试了View.OnClickListener


你知道吗?

这里有两个问题。首先,如果你真的想让GridViewPager可点击,你需要告诉它去监听点击事件——仅仅实现OnClickListener接口是不够的。所以你需要这样做:

public class DetailsActivity ... {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        ...

        GridViewPager pager = (GridViewPager)findViewById(R.id.pager);
        pager.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // put your onClick logic here
            }
        });

        ...
    }
}
尽管如此,根据您的描述,您实际想要的似乎是在网格中的各个页面上设置单击处理程序,而不是在整个网格上。如果是这样,那么您将需要在每个页面的片段类中执行类似的操作。例如:

public class MyPageFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View result = inflater.inflate(...);
        result.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // put your onClick logic here
            }
        });

        ...

        return result;
    }
}

注意:如果您在GridViewPager中使用CardFragments,那么您可能会在onCreateContentView覆盖中设置OnClickListener。否则,上述基于片段的示例应该适用。

实际上,您需要覆盖的是onCreateContentView方法,onCreateView最终解决了这一问题,还是您确实接受了答案以获得一些分数?:/因为这对我来说根本不起作用。此侦听器没有注册任何单击。。。
public class DetailsActivity ... {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        ...

        GridViewPager pager = (GridViewPager)findViewById(R.id.pager);
        pager.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // put your onClick logic here
            }
        });

        ...
    }
}
public class MyPageFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View result = inflater.inflate(...);
        result.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // put your onClick logic here
            }
        });

        ...

        return result;
    }
}