2012-12-11 298 views
2


設置GridView默認選擇

任何人都可以指導我如何設置網格視圖的特定元素爲選定的?

.setSelection(positionOfItem)不起作用。

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

define'is not working'? – njzk2

+0

你的意思是? –

+0

setSelection此時不能被調用,我想。你需要等待你的名單被顯示 – njzk2

回答

2

它爲我工作

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

不能正常工作.... –

+0

你設置選擇兩次比也沒有工作的人! –

0

試試這個:

grid.performItemClick(view, position, id); 

然後我的狀態繪製的作品上正確的GridView。

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> = 11,也可以加一個View.OnLayoutChangeListener到GridView控件。