문제

내 안드로이드 응용 프로그램에 대한 몇 가지 기본 설정을 설정하고 있으며 몇 가지 문제가 있습니다.우선,나는 설정을 엽니 다 작업 표시 줄의 오른쪽 상단에있는 트리플 도트 메뉴를 사용하는 방법을 알아낼 수 없습니다.그래서 일시적으로 선택 설정을 호출하는 버튼을 만들었습니다:

a button

    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);
 }
}

어떤 종류의 작품.그 결과 내 화면이 다음과 같이 보입니다.

this

도움이 되었습니까?

해결책

오버플로 메뉴의 설정

오버플로 메뉴의 설정을 사용하려면 오버플로 메뉴를 재정의해야 합니다. 옵션 항목선택됨 방법,이미 그렇지 않은 경우 올바른 아이디를 처리하십시오.

@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);
}

그렇지 않으면 조각을 올바르게 추가/제거/교체 할 수 있도록 프레임 레이아웃과 같은 것을 사용하도록 기본 레이아웃을 변경해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top