트리플 도트 메뉴에서"설정"을 사용하여 설정 표시
-
21-12-2019 - |
문제
내 안드로이드 응용 프로그램에 대한 몇 가지 기본 설정을 설정하고 있으며 몇 가지 문제가 있습니다.우선,나는 설정을 엽니 다 작업 표시 줄의 오른쪽 상단에있는 트리플 도트 메뉴를 사용하는 방법을 알아낼 수 없습니다.그래서 일시적으로 선택 설정을 호출하는 버튼을 만들었습니다:
public void chooseSettings(View view) {
getFragmentManager().beginTransaction().replace(android.R.id.content, new PreferenceActivity()).commit();
}
이것은 내 선호 활동 클래스의 코드입니다:
public class PreferenceActivity extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.preferences);
}
}
어떤 종류의 작품.그 결과 내 화면이 다음과 같이 보입니다.
해결책
오버플로 메뉴의 설정
오버플로 메뉴의 설정을 사용하려면 오버플로 메뉴를 재정의해야 합니다. 옵션 항목선택됨 방법,이미 그렇지 않은 경우 올바른 아이디를 처리하십시오.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
// Code to show settings.
return true;
}
return super.onOptionsItemSelected(item);
}
교체 R.id.action_settings
메뉴 항목의 아이디와 함께.
우선 순위 표시
이미지에서 보여 주듯이 환경 설정 화면이 기존 레이아웃과 겹칩니다.
추가한 조각만 바꿀 수 있습니다 동적으로.
나 xml 화면에 있는 버튼을 추측 국가와 짐작 플래그 팽창되지 않을 동적으로 추가되는 조각으로 그렇게 추가하여 기본 조각 간단하게 표시됩니다.
솔루션
당신이 이것에 대해 갈 수있는 한 가지 방법은 만들고 환경 설정 조각을로드 할 새로운 활동을 시작하는 것입니다.
예를 들어,만약 당신이 클래스를 만들면 SettingsActivity
어떤 환경 설정을로드합니다(안드로이드 매니페스트에 추가하는 것을 잊지 마세요):
public class SettingsActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction().replace(android.R.id.content, new PreferenceActivity()).commit();
}
}
그런 다음 당신의 onOptionsItemSelected
,설정 활동을 시작할 수 있습니다.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
Intent intent = new Intent(this, SettingsActivity.class);
startActivity(intent);
return true;
}
return super.onOptionsItemSelected(item);
}
그렇지 않으면 조각을 올바르게 추가/제거/교체 할 수 있도록 프레임 레이아웃과 같은 것을 사용하도록 기본 레이아웃을 변경해야합니다.