Android StudioOverflow menu 만들기
6982 단어 안드로이드AndroidStudio안드로이드 개발
menu layout 만들기
우선 res folder->new->Directory로 menu folder를 만든다
그리고 menu folder->new->Menu resource file(xml) 만들기
menu layout 쓰기
menu layout의 xml에 아래와 같이 (4개의) item을 만든다.
menu_overflow.xml<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/user" android:title="user"/>
<item android:id="@+id/login" android:title="login"/>
<item android:id="@+id/setting" android:title="setting"/>
<item android:id="@+id/logout" android:title="logout"/>
</menu>
onCreateOptionMenu()로 Menu를 Activity로 생성
사용자가 menu를 탭하거나 Activity.openOptionsMenu()를 호출하면 onCreateOptionMenu(Menu menu)가 호출되는 것 같습니다.
Android에서 menu의 Layout 정보를 menu로 패스하고, 그것을 parent로 하고, item 정보가 들어간 xml을 inflate하고, 다시 한번 menu를 던진 onCreateOptionMenu()를 리턴하면 좋을 것 같습니다.
*getLayoutInflator(x)getMenuInflator(O)
MainActivity.java
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_overflow,menu);
return super.onCreateOptionsMenu(menu);
}
여기까지 하면, 이미 menu가 되어 있을 것입니다. 그러나 item을 탭해도 반응하지 않습니다.
onOptionsItemSelected()
이 방법으로 각 항목의 반응을 쉽게 설정합니다. MenuItem의 item에서 사용자가 탭한 item의 Id를 getItemId()로 취득해, R.id.itemId와 대조해, 반응을 설정합니다.
MainActvity.java@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId())
{
case R.id.user:
Toast.makeText(this,"user_activity",Toast.LENGTH_SHORT).show();
return true;
case R.id.login:
Toast.makeText(this,"user_login",Toast.LENGTH_SHORT).show();
return true;
case R.id.setting:
Toast.makeText(this,"user_setting",Toast.LENGTH_SHORT).show();
return true;
case R.id.logout:
Toast.makeText(this,"user_logout",Toast.LENGTH_SHORT).show();
return true;
//defalt will return false if none of the case is meet
default:
return super.onOptionsItemSelected(item);
}
}
이상은 현시점의 각서입니다.
Reference
이 문제에 관하여(Android StudioOverflow menu 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/fang8823/items/62aa978afb9909cb1875
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
menu layout의 xml에 아래와 같이 (4개의) item을 만든다.
menu_overflow.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/user" android:title="user"/>
<item android:id="@+id/login" android:title="login"/>
<item android:id="@+id/setting" android:title="setting"/>
<item android:id="@+id/logout" android:title="logout"/>
</menu>
onCreateOptionMenu()로 Menu를 Activity로 생성
사용자가 menu를 탭하거나 Activity.openOptionsMenu()를 호출하면 onCreateOptionMenu(Menu menu)가 호출되는 것 같습니다.
Android에서 menu의 Layout 정보를 menu로 패스하고, 그것을 parent로 하고, item 정보가 들어간 xml을 inflate하고, 다시 한번 menu를 던진 onCreateOptionMenu()를 리턴하면 좋을 것 같습니다.
*getLayoutInflator(x)getMenuInflator(O)
MainActivity.java
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_overflow,menu);
return super.onCreateOptionsMenu(menu);
}
여기까지 하면, 이미 menu가 되어 있을 것입니다. 그러나 item을 탭해도 반응하지 않습니다.
onOptionsItemSelected()
이 방법으로 각 항목의 반응을 쉽게 설정합니다. MenuItem의 item에서 사용자가 탭한 item의 Id를 getItemId()로 취득해, R.id.itemId와 대조해, 반응을 설정합니다.
MainActvity.java@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId())
{
case R.id.user:
Toast.makeText(this,"user_activity",Toast.LENGTH_SHORT).show();
return true;
case R.id.login:
Toast.makeText(this,"user_login",Toast.LENGTH_SHORT).show();
return true;
case R.id.setting:
Toast.makeText(this,"user_setting",Toast.LENGTH_SHORT).show();
return true;
case R.id.logout:
Toast.makeText(this,"user_logout",Toast.LENGTH_SHORT).show();
return true;
//defalt will return false if none of the case is meet
default:
return super.onOptionsItemSelected(item);
}
}
이상은 현시점의 각서입니다.
Reference
이 문제에 관하여(Android StudioOverflow menu 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/fang8823/items/62aa978afb9909cb1875
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_overflow,menu);
return super.onCreateOptionsMenu(menu);
}
이 방법으로 각 항목의 반응을 쉽게 설정합니다. MenuItem의 item에서 사용자가 탭한 item의 Id를 getItemId()로 취득해, R.id.itemId와 대조해, 반응을 설정합니다.
MainActvity.java
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
switch (item.getItemId())
{
case R.id.user:
Toast.makeText(this,"user_activity",Toast.LENGTH_SHORT).show();
return true;
case R.id.login:
Toast.makeText(this,"user_login",Toast.LENGTH_SHORT).show();
return true;
case R.id.setting:
Toast.makeText(this,"user_setting",Toast.LENGTH_SHORT).show();
return true;
case R.id.logout:
Toast.makeText(this,"user_logout",Toast.LENGTH_SHORT).show();
return true;
//defalt will return false if none of the case is meet
default:
return super.onOptionsItemSelected(item);
}
}
이상은 현시점의 각서입니다.
Reference
이 문제에 관하여(Android StudioOverflow menu 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/fang8823/items/62aa978afb9909cb1875텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)