다이얼로그, 메뉴 - AlertDialog 구현, 서브 메뉴(2)
다이얼로그, 메뉴에 대해서 구현하는 방법에 대해서 소개합니다.
1. AlertDialog 구현, 서브 메뉴
2. 영상
3. 코드
public class MainActivity extends AppCompatActivity {
private static final int DIALOG_YES_NO_MESSAGE = 1;
@Override protected Dialog onCreateDialog(int id){
switch (id){
case DIALOG_YES_NO_MESSAGE: AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("확인 대화상자") .setMessage("야호 야호?") .setCancelable(true) .setPositiveButton("Yes", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int i) { Toast.makeText(getApplicationContext(), "네~!", Toast.LENGTH_SHORT).show(); } }) .setNegativeButton("No", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int i) { dialog.cancel(); } });
AlertDialog dialog = builder.create(); return dialog;
default: return null; }
}
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
Button btn = (Button)findViewById(R.id.btn1); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { showDialog(DIALOG_YES_NO_MESSAGE); } });
}
@Override public boolean onCreateOptionsMenu(Menu menu){
super.onCreateOptionsMenu(menu);
SubMenu sub = menu.addSubMenu("file");
sub.add(0, 1, 0, "새 창"); sub.add(0, 2, 0, "열기");
sub.getItem(0).setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem menuItem) { Toast.makeText(getApplicationContext(), "호호1", Toast.LENGTH_SHORT).show(); return false; } });
sub.getItem(1).setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem menuItem) { Toast.makeText(getApplicationContext(), "호호2", Toast.LENGTH_SHORT).show(); return false; } });
return true; }
}
|
MainActivity.Java
|
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:orientation="vertical" tools:context="com.example.lab.submenu.MainActivity">
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="마시멜로" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" />
<Button android:id="@+id/btn1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="버튼" tools:layout_editor_absoluteX="16dp" tools:layout_editor_absoluteY="40dp" />
</LinearLayout>
|
Activity_main.xml
|
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/file" android:title="Item"> <menu> <item android:id="@+id/create_new" android:title="새로 만들기" />
<item android:id="@+id/open" android:title="열기" />
</menu>
</item> </menu>
|
menu.xml (XML 구현 X)
|