package jp.mydns.sys1yagi.android.slidingmenusample; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.os.Bundle; import android.os.Handler; import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ImageView; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.SimpleAdapter.ViewBinder; import android.widget.TextView; import com.actionbarsherlock.app.SherlockActivity; import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu; import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu.OnClosedListener; import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu.OnOpenedListener; public class SlidingMenuSampleActivity extends SherlockActivity { private final static String TAG = SlidingMenuSampleActivity.class .getSimpleName(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_sliding_menu_sample); final SlidingMenu menu = new SlidingMenu(this); menu.setMode(SlidingMenu.LEFT); menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); menu.setBehindWidth(getResources().getDimensionPixelSize( R.dimen.menu_width)); menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); menu.setMenu(R.layout.sliding_menu); menu.setOnOpenedListener(new OnOpenedListener() { @Override public void onOpened() { // メニューが開かれた時に呼び出される } }); menu.setOnClosedListener(new OnClosedListener() { @Override public void onClosed() { // メニューが閉じた時に呼び出される } }); initializeMenuLayout(menu); new Handler().postDelayed(new Runnable() { @Override public void run() { menu.showMenu(true); } }, 4000); } class MenuItem { String title; int icon; } private final static String ICON = "icon"; private final static String TITLE = "text"; void initializeMenuLayout(SlidingMenu menu) { ListView listView = (ListView) menu.findViewById(R.id.menu_list); final List<Integer> itemsIcon = new ArrayList<Integer>(); itemsIcon.add(R.drawable.icon_refresh); itemsIcon.add(R.drawable.icon_account); itemsIcon.add(R.drawable.icon_home); itemsIcon.add(R.drawable.icon_group); final List<String> itemsTitle = new ArrayList<String>(); itemsTitle.add("Refresh"); itemsTitle.add("Account"); itemsTitle.add("Home"); itemsTitle.add("Group"); List<Map<String, MenuItem>> items = new ArrayList<Map<String, MenuItem>>(); for (int i = 0; i < itemsTitle.size(); i++) { Map<String, MenuItem> map = new HashMap<String, MenuItem>(); MenuItem menuItem = new MenuItem(); menuItem.icon = itemsIcon.get(i); menuItem.title = itemsTitle.get(i); map.put(ICON, menuItem); map.put(TITLE, menuItem); items.add(map); } SimpleAdapter adapter = new SimpleAdapter(this, items, R.layout.sliding_menu_item, new String[] { ICON, TITLE }, new int[] { R.id.icon, R.id.title }); adapter.setViewBinder(new ViewBinder() { @Override public boolean setViewValue(View view, Object data, String textRepresentation) { MenuItem menuItem = (MenuItem) data; switch (view.getId()) { case R.id.icon: ((ImageView) view).setImageResource(menuItem.icon); break; case R.id.title: ((TextView) view).setText(menuItem.title); break; } return true; } }); listView.setAdapter(adapter); listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Log.d(TAG, "onItemClick"); } }); } }