我正在开发一个简单的应用程序,其中您在Google地图上放置了不同的位置。
当我单击一个点时,会得到其详细信息,这些详细信息将显示在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接口是不够的。因此,您需要执行以下操作:
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。否则,应使用以上基于片段的示例。