xml 파일을 이용한 메뉴버튼 구현 (OptionsMenu)
MainActivity.java 파일 하나만으로도 메뉴 구현이 가능하지만
여기서는 xml 파일을 이용한 Options Menu를 구현해보도록 하겠습니다.
* 장점 : 구현이 쉬움
* 단점 : 메뉴 > 서브메뉴(다중 체크)를 구현해도 한 개의 Item 클릭시 창이 닫힘
res/menu/activity_main.xml 파일 생성
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/setting" android:title="SETTING"> <menu> <group android:id="@+id/menu_group" android:enabled="true" android:checkableBehavior="all"> <item android:id="@+id/popup" android:title="POPUP" /> <item android:id="@+id/notice" android:title="NOTICE" /> </group> </menu> </item> <item android:id="@+id/clear" android:title="CLEAR" /> <item android:id="@+id/exit" android:title="EXIT" /> </menu> |
* 아래 옵션을 사용하면 메뉴에 이미지 삽입도 가능합니다.
android:icon="@drawable/icon_clear"
MainActivity.java 수정
import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.widget.Toast; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } // Menu @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()) { case R.id.popup: if (item.isChecked()) item.setChecked(false); else item.setChecked(true); return true; case R.id.notice: if (item.isChecked()) item.setChecked(false); else item.setChecked(true); return true; case R.id.clear: DBManager GCMclear = new DBManager(this, "sysdocu.db", null, 1); SQLiteDatabase db = GCMclear.getWritableDatabase(); db.execSQL("delete from message;"); db.close(); finish(); startActivity(new Intent(this, MainActivity.class)); return true; case R.id.quit: finish(); return true; default: return super.onOptionsItemSelected(item); } } } |
'프로그래밍 > Android (Java)' 카테고리의 다른 글
스크롤바 넣기 (ScrollView) (0) | 2015.01.27 |
---|---|
액티비티 (activity) 재시작 재호출 재구동 (2) | 2015.01.27 |
edittext 속성 - 기본값 입력 및 쓰기 금지 설정 (0) | 2015.01.27 |
일반 텍스트 출력 (textview) (0) | 2015.01.27 |
SQLite select 예제 (0) | 2015.01.27 |