android 磨损 gridview 寻呼机 onClickListener

标签 android onclicklistener wear-os

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

这是我的地点详细信息布局(没什么花哨的)

<android.support.wearable.view.GridViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:keepScreenOn="true"/>

我现在的问题是我无法检测到卡片上的 Click 事件。 我已经尝试过了,但没有成功。

public class DetailsActivity extends Activity implements GridViewPager.OnClickListener {


@Override
public void onClick(View v) {

}

我也尝试过 View.OnClickListener。

有什么想法吗?

最佳答案

这里有两个问题。首先,如果您确实想让 GridViewPager 可单击,则需要告诉它监听单击事件 - 仅实现 OnClickListener 接口(interface)是不够的。所以你需要做这样的事情:

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
            }
        });

        ...
    }
}

话虽这么说,但根据您的描述,听起来您真正想要的是在网格内的各个页面上设置单击处理程序,而不是在整个网格上。如果是这样,那么您需要在每个页面的 Fragment 类中执行类似的操作。例如:

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。否则,应应用上述基于 fragment 的示例。

关于android 磨损 gridview 寻呼机 onClickListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26343337/

相关文章:

android - 为什么涟漪效应会移除我原来的背景?

java - 每个类都必须有自己的 OnClickListener 吗?

java - 如何在android wear上录制音频

java - Android Wear 健康传感器 Moto360

android - 在磨损服务中调用 blockingConnect 时出现 IllegalStateException

android - 当 webview 中无法访问互联网并隐藏 url 时,如何在 android 中显示消息?

android - 出现键盘时 flutter 溢出底部

java - 从 Android 中的 ListView 中删除最后一项时出错

即使将其可见性设置为 GONE,Android View 仍会获得 OnClick()

android - 拉伸(stretch)图库中的 ImageView 以适合屏幕