好的,我刚拿到那个项目 :)
不知道这是否是最好的方法,但我已经做到了:p
我只是简单地在相同布局中创建了一个 listView 并将其可见性设置为“消失”。
<LinearLayout
android:id="@+id/spinnerlayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/linearLayout1"
android:layout_below="@+id/ll_upper"
android:layout_marginTop="15dp"
android:orientation="vertical"
android:visibility="gone">
<ListView
android:id="@+id/lv_menu"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_below="@id/ll_upper"
android:visibility="visible" >
</ListView>
</LinearLayout>
为此
private String menuTitle[] = { "Facebook 登录", "关于", "设置" };
然后我设置 menuAdapter:
private class MenuAdapter extends BaseAdapter {
@Override
public int getCount() {
// TODO Auto-generated method stub
return menuTitle.length;
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
// TODO Auto-generated method stub
LayoutInflater inf = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
View v = inf.inflate(R.layout.item_menu, null);
((TextView) v.findViewById(R.id.tv_menuitem))
.setText(menuTitle[arg0]);
return v;
}
}
最后是捉迷藏;)
iv_menu.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// lv_menu.setVisibility(View.VISIBLE);
// lv_menu.setCacheColorHint(color.transparent);
if (flag) {
list.setVisibility(View.VISIBLE);
lv_menu.setAdapter(new MenuAdapter());
flag = false;
}
else {
list.setVisibility(View.GONE);
lv_menu.setAdapter(new MenuAdapter());
flag = true;
}
}
});
lv_menu.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
lv_menu.setVisibility(View.GONE);
//you code for doing Actions
}
});