以下結果
実装
MainActivityのメニュー追加
package jp.mshige1979.app.sampleappactivity1; import android.content.Intent; import android.support.v4.view.MenuItemCompat; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.Window; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; public class MainActivity extends ActionBarActivity { private ListView listview; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 表示用データ String[] list = {"aaaa", "bbbb", "cccc", "dddd"}; // 紐付け listview = (ListView)findViewById(R.id.listView); // ArrayAdapterへ設定 ArrayAdapter<String> adapter = new ArrayAdapter<String>( MainActivity.this, android.R.layout.simple_expandable_list_item_1, list); // リストビューへ設定 listview.setAdapter(adapter); // リストをクリック listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // リストビューの項目を取得 ListView listview = (ListView) parent; String item = (String)listview.getItemAtPosition(position); // インテントのインスタンス生成 Intent intent = new Intent(MainActivity.this, MainActivity2.class); // 値をセットする intent.putExtra("list_item", item); // 次画面のアクティビティ起動 startActivity(intent); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); // メニューボタンを追加 MenuItem item = menu.add("NEW"); item.setIcon(android.R.drawable.ic_input_add); MenuItem item2 = menu.add(Menu.NONE, MENU_ID_MENU2, Menu.NONE, "DEL"); item2.setIcon(android.R.drawable.ic_menu_help); // メニューのイベント定義 item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { // インテントのインスタンス生成 Intent intent = new Intent(MainActivity.this, MainActivity2.class); // 次画面のアクティビティ起動 startActivity(intent); return false; } }); // 画面に表示する処理 MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_IF_ROOM); MenuItemCompat.setShowAsAction(item2, MenuItemCompat.SHOW_AS_ACTION_IF_ROOM); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
※メニューを追加するにはonCreateOptionsMenuで作成して設定する必要があるよう
以上
所感
ボタンを1つだけ用意するよりメニューとしてできるようにしたほうがスッキリするのでこちらのほうがいいかも、ただ、バージョンで多少の制限があるのでつかいどころを気をつけるようにする