4/17/2015

[Android] 做自己的Spinner (3)

上次已經把Spinner整個元件的建立都講完了
下拉選單中的每個元件細部設定, 除了xml上的設置, 其他都在adapter中的getView()完成
getView()[Android] 做自己的Spinner (1)中有貼到了

所以現在 就剩下Spinner的使用了
首先是在需要的畫面中加入自製的spinner到xml中
<idv.ally.tool.UI.ListSpinner
    android:id="@+id/skillsListSpinner"
    android:layout_width="@dimen/info_spinner_width"
    android:layout_height="match_parent"                               
    android:background="@drawable/info_spinner" />


然後在我們需要加spinner的view裡將spinner設好起始畫面
包括抬頭標題和Listener設置
就像一般的情況一樣, 通常是在onCreate()吧

private ListSpinner mSkillsSpinner;
//.......
//@onViewCreate()
mSkillsSpinner = getViewById("skillsListSpinner");
mSkillsSpinner.setTitle(getActivity(), "spinner_list_item", "SKills");
mSkillsSpinner.setListener(this);
然後再設定好需要的選單樣式跟內容
//@onViewShowed()
int id =getResourceId(ResourceType.Array, "skills");
mSkillsSpinner.setItems(getContext().getResources().getStringArray(id), 
    getResLayout("spinner_dropdown_item"), SpinnerType.RADIO_TOGGLE_SPINNER);
最後就是看你哪時後要show要hide了
mSkillsSpinner.show();
mSkillsSpinner.hide();
Spinner事件觸發時的反應
@Override
public void onCloseSpinner(ListSpinner spinner)
{
  updateBackground();
}

@Override
public void onItemClicked(View holder)
{
  mSkillsType = getSkillsType(holder.getTag().toString());
}

全部就大功告成啦!

1 則留言:

  1. 不好意思,請問能提供範例嗎?
    方便的話,可以寄給我嗎?
    kaka784804@gmail.com

    回覆刪除