如何使用 GridViewPager 实现带有 onClick 事件的操作按钮

How to Implement action buttons with onClick events using GridViewPager

我正在实施 android GridviewPager android wear 应用程序。在 this code sample.

的帮助下

我想显示 2 个操作按钮、它的 onClick 事件、它的文本、背景图像。当前代码看起来像,在圆形磨损模拟器中

和方形模拟器

我的问题是。

1) 如何去除圆形模拟器中最上面的黑色部分

2) 在方形模拟器中居中图像和文本

3) 在点击操作按钮时执行 onClick 事件

GridPagerAdapter

public class GridPagerAdapter extends FragmentGridPagerAdapter{

private Context mContext;
private ArrayList<GridRow> mRows;

public GridPagerAdapter(Context mContext, FragmentManager fm) {
    super(fm);
    this.mContext = mContext;
    initAdapter();
}

private void initAdapter() {
    mRows = new ArrayList<GridRow>();
    GridRow row1 = new GridRow();
    row1.addPage(new GridPage("", "            Add Call", R.drawable.addcall, R.mipmap.ic_launcher));
    row1.addPage(new GridPage("", "            View Map", R.drawable.view_map, R.mipmap.ic_launcher));
    mRows.add(row1);

}

@Override
public Fragment instantiateItem(ViewGroup container, int row, int column) {
    Log.d("GridPagerAdapter","in instantiateItem row = "+row+"column = "+column);

    return super.instantiateItem(container, row, column);
}

@Override
public Fragment getFragment(int row, int col) {
    GridPage page = mRows.get(row).getPage(col);
    Log.d("GridPagerAdapter","in getFragment row = "+row+"column = "+col);
    CardFragment cardFragment = CardFragment.create(page.getTitle(), page.getText(), page.getIcon());
    return cardFragment;
}

@Override
public Drawable getBackgroundForPage(int row, int column) {
    GridPage page = mRows.get(row).getPage(column);
    return getBackgroundForRow(page.getBackground());
}

@Override
public int getRowCount() {
    return mRows.size();
}

@Override
public int getColumnCount(int row) {
    return mRows.get(row).getSize();
}
}

穿Activity

public class WearActivity extends Activity {

private GridViewPager mPager;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_wear);

    mPager = (GridViewPager) findViewById(R.id.gridPager);
    mPager.setAdapter(new GridPagerAdapter(this, getFragmentManager()));
}
}

提前感谢您的帮助

终于得到答案

1) 在xml (rect,round)

之一中添加以下代码
<ImageView
    android:id="@+id/imgview"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:layout_marginTop="35dp"
    android:layout_gravity="center_horizontal"
    android:src="@drawable/card1"/>

<TextView android:id="@+id/text"
    android:layout_width="wrap_content"
    android:layout_marginTop="10dp"
    android:layout_gravity="center_horizontal"
    android:layout_height="wrap_content"
    android:text="@string/hello_square" />

2) 编辑 instantiateItem 方法

   @Override
    public Object instantiateItem(ViewGroup viewGroup, final int row, final int col) {
     final View view = LayoutInflater.from(getApplicationContext()).inflate(R.layout.rect_activity_wear, viewGroup, false);
        final TextView textView = (TextView) view.findViewById(R.id.text);
        final ImageView imageView = (ImageView) view.findViewById(R.id.imgview);

        imageView.setImageResource(carImageIDs[row][col]);
        textView.setText(ImageTexts[row][col]);

         viewGroup.addView(view);
        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.d("Wear","Image Click row = "+row+"col =  "+col);
            }
        });

        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.d("Wear","text Click row = "+row+"col =  "+col);
            }
        });

        return view;
     }

希望对大家有所帮助,编码愉快