공부/안드로이드(Android)

다이얼로그, 메뉴 - AlertDialog 구현, 서브 메뉴(2)

도도-도윤 2017. 11. 10. 21:33

다이얼로그, 메뉴 - 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)