다양한 옵션 목록으로 컨텍스트 메뉴를 여는 버튼이 있습니다. 한 번에 하나의 옵션 만 선택할 수 있으므로 현재 선택된 항목을 강조 표시하는 각 옆에 라디오 버튼을 갖기를 원합니다. 상황에 맞는 메뉴에서 항목을 선택하면 라디오 버튼이 선택되고 닫힙니다. 컨텍스트 메뉴를 열기 위해 버튼을 클릭하면 이전에 선택한 항목이 선택되지 않습니다.안드로이드 체크 가능 컨텍스트 메뉴가 체크되지 않음
이전에 선택한 항목을 기억하도록 상황에 맞는 메뉴를 표시하려면 어떻게합니까?
두 번째로 활동이 처음 생성 될 때 기본 옵션이 선택됩니다. 다른 컨텍스트 메뉴 항목을 선택하면 덮어 쓸 수있는 초기 기본값을 어떻게 설정합니까? XML에 android:checked="true"
을 설정할 수 있지만 다른 항목을 선택하면이를 덮어 쓸 수 있습니까?
자바 :
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.browse);
Button buttonView = (Button) this.findViewById(R.id.button_view);
buttonView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
registerForContextMenu(v);
openContextMenu(v);
}
});
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle(R.string.menu_title);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.context_menu, menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch(item.getItemId()) {
case(R.id.item1):
if(item.isChecked()) {
item.setChecked(false);
} else {
item.setChecked(true);
}
break;
case(R.id.item2):
if(item.isChecked()) {
item.setChecked(false);
} else {
item.setChecked(true);
}
break;
case(R.id.item3):
if(item.isChecked()) {
item.setChecked(false);
} else {
item.setChecked(true);
}
break;
default:
return super.onContextItemSelected(item);
}
return true;
}
XML :
이<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:id="@+id/context_menu" android:checkableBehavior="single">
<item android:id="@+id/item1"
android:title="@string/context_menu_item1" />
<item android:id="@+id/item2"
android:title="@string/context_menu_item2" />
<item android:id="@+id/item3"
android:title="@string/context_menu_item3" />
</group>
</menu>
이 어떤 도움을 주시면 감사하겠습니다!
그래서 선택하면 사용자 입력을 저장합니다. 그러면 다음에 컨텍스트 메뉴가 열릴 때이 항목을 선택 항목으로 표시하는 방법은 무엇입니까? – tavocado
답변을 업데이트했습니다. 따라서 onCreateContextMenu를 사용하고 여기에 checked 상태를 설정해야합니다. – asktomsk
이제는 잘 작동합니다! 당신의 도움을 주셔서 감사합니다 :) – tavocado