2021/01/05 - [안드로이드] - [안드로이드] 다이얼로그(Dialog) 리스트(List)로 보여주는 방법
2021/01/06 - [안드로이드] - [안드로이드]다이얼로그(Dialog) 체크박스(CheckBox)로 보여주기
2021/01/07 - [안드로이드] - [안드로이드] 다이얼로그(Dialog) 사용자정의 (Custom) 화면으로 보여주기
2021/01/08 - [안드로이드] - [안드로이드]프래그먼트(Fragment) 간의 데이터 전달방법(Listener)
이번 시간에는 바로가기메뉴(ContextMenu)를 만들어 보겠습니다.
빨강,파랑,녹색 메뉴를 만들어서 해당 메뉴를 누르면 바탕화면이 변경되는 간단한 예제입니다.
바로가기메뉴는 버튼을 꾹 눌러줘야 실행이 됩니다.
1-1 메뉴폴더 생성 res -> New -> Android Resource Directory
1-2 메뉴파일 생성 res -> menu -> New -> Menu Resource File
파일명은 context_menu로 하겠습니다.
context_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_red"
android:title="빨간화면"
/>
<item
android:id="@+id/menu_blue"
android:title="파란화면"
/>
<item
android:id="@+id/menu_green"
android:title="녹색화면"
/>
</menu>
2. 메인화면 구현(activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:id="@+id/rootView"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/btn_context"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Context Menu" />
</RelativeLayout>
3. 메인코드 구현(MainActivity.java)
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private Button btn_context;
private RelativeLayout rootLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn_context = findViewById(R.id.btn_context);
btn_context.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "꾸욱 눌러주세요", Toast.LENGTH_SHORT).show();
}
});
rootLayout = findViewById(R.id.rootView);
//컨텍스트메뉴 연결
registerForContextMenu(btn_context);
}
//컨텍스트메뉴 설정 메소드
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.context_menu, menu);
}
//컨텍스트 메뉴에서 메뉴를 선택했을때 실행되는 메소드
@Override
public boolean onContextItemSelected(@NonNull MenuItem item) {
switch(item.getItemId()){
case R.id.menu_red:
rootLayout.setBackgroundColor(Color.RED);
return true;
case R.id.menu_blue:
rootLayout.setBackgroundColor(Color.BLUE);
return true;
case R.id.menu_green:
rootLayout.setBackgroundColor(Color.GREEN);
return true;
default:
return super.onContextItemSelected(item);
}
}
}
4. 실행화면
2021/01/05 - [안드로이드] - [안드로이드] 다이얼로그(Dialog) 리스트(List)로 보여주는 방법
2021/01/06 - [안드로이드] - [안드로이드]다이얼로그(Dialog) 체크박스(CheckBox)로 보여주기
2021/01/07 - [안드로이드] - [안드로이드] 다이얼로그(Dialog) 사용자정의 (Custom) 화면으로 보여주기
2021/01/08 - [안드로이드] - [안드로이드]프래그먼트(Fragment) 간의 데이터 전달방법(Listener)
[안드로이드] 동적 메뉴(ActionMode) 만들어 보기 (0) | 2021.01.11 |
---|---|
[안드로이드] 리스트(RecyclerView) 와 바로가기메뉴(ContextMenu) (0) | 2021.01.10 |
[안드로이드]프래그먼트(Fragment) 간의 데이터 전달방법(Listener) (0) | 2021.01.08 |
[안드로이드] 다이얼로그(Dialog) 사용자정의 (Custom) 화면으로 보여주기 (0) | 2021.01.07 |
[안드로이드]다이얼로그(Dialog) 체크박스(CheckBox)로 보여주기 (0) | 2021.01.06 |
댓글 영역