设置GridView的默认选择

时间:2012-12-11 08:36:44

标签: android android-layout


任何人都可以指导我如何设置网格视图的特定元素?

.setSelection(positionOfItem)无效。

gridViewSize  =  (GridView) inflaterView.findViewById(R.id.grid_sizes);
        gridViewSize.setAdapter(new PopupSizeAdapter(context,typeArr,1));
        gridViewSize.setSelection(0);

3 个答案:

答案 0 :(得分:2)

它对我有用

mGridView.setSelection(pos);
mGridView.requestFocusFromTouch();
mGridView.setSelection(pos);

答案 1 :(得分:1)

我今天遇到了同样的问题,以下是我的解决方案:

GridView.getViewTreeObserver.addOnGlobalLayoutListener(getLayoutListener(mGridView))
private static ViewTreeObserver.OnGlobalLayoutListener getLayoutListener(final GridView mGridView) {
    ViewTreeObserver.OnGlobalLayoutListener listener = new ViewTreeObserver.OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            View view = mGridView.getChildAt(0);
            if(view != null) {
                if(!view.isSelected()) {
                    view.setSelected(true);
                } else {
                    // remove the listener after the first time.
                    if (Build.VERSION.SDK_INT < 16) {
                        mGridView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
                    } else {
                        mGridView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
                    }
                }
            }
        }
    };

    return listener;
}

并且,如果您使用的是android API&gt; = 11,您还可以将View.OnLayoutChangeListener添加到GridView。

答案 2 :(得分:0)

试试这个:

grid.performItemClick(view, position, id);

然后我的状态drawable在GridView上正常工作。