헤더 / 조각이없는 단일 페이지 PreferenceActivity?
나는 꽤 쉽다고 생각하는 것을 달성하려고 노력하고 있지만 PreferenceActivity 클래스와 xml preference-header 태그를 사용하여 그것을 달성하는 방법에 당황합니다.
사용자가 앱 설정 아이콘을 탭하면 작은 체크 박스 및 목록 목록이 표시되기를 바랍니다. 기본 설정 조각이 하나뿐입니다. 지금까지 기본 설정 조각에 대한 단일 헤더를 표시하도록 PreferenceActivity xml 파일 (preferences.xml 및 기본 설정 조각 xml)을 설정할 수 있습니다. 사용자가 해당 헤더를 선택하면 기본 설정 화면이 정확히 원하는대로 표시되지만 첫 번째 헤더 화면 표시를 건너 뛰는 방법을 알아낼 수 없습니다.
설정 / 기본 설정 아이콘을 탭하고 단일 헤더를 표시 한 다음 탭하여 실제 설정 / 기본 설정으로 이동하는 것은 낭비 인 것 같습니다.
나는 이것이 당신의 선호도를 분류하고 싶다면 이것이 얼마나 도움이 될 수 있는지 이해하지만, 단순한 것을 위해 이것은 오버 헤드를 추가하고 다소 투박해 보입니다.
분명했으면 좋겠어요. 요컨대 내 질문이 있습니다.
PreferenceActivity 클래스 및 preferences-header 태그를 사용하여 헤더없이 단일 옵션 화면을 표시하는 새로운 선호 방법은 무엇입니까?
좀 더 둘러 본 후에는 이전 방법이 간단한 방식으로 수행 한 작업을 수행하려는 것 같습니다. 더 이상 사용되지 않는 기능을 사용하지 않고이 작업을 수행하려고합니다.
미리 감사드립니다, B.
새로운 선호 방법은 PreferenceFragment
모든 활동의 주요 콘텐츠로 싱글을 표시하는 것입니다. 필요하지 않습니다 PreferenceActivity
. API 데모 샘플보기
public class FragmentPreferences extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Display the fragment as the main content.
getFragmentManager().beginTransaction().replace(android.R.id.content,
new PrefsFragment()).commit();
}
public static class PrefsFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.preferences);
}
}
}
이 질문과 일치하는 답변을 찾고있었습니다. 결국 나는 다른 여러 출처에서 그것을 해결했습니다. 여전히 대답을 원하는 사람들을 위해 여기에 효과가 있습니다. (참고-이 프로젝트에서는 최소 및 대상 SDK가 모두 15로 설정되어 있습니다.)
- PreferenceHeaders를 덤프하면 필요하지 않습니다.
- 단일 페이지 설정으로 기본 설정 화면을 만듭니다.
- 기본 설정 활동 클래스를 만듭니다 (아래 SettingsActivity).
- PreferenceFragment를 확장하는 인라인 클래스를 만듭니다 (아래 LocationFragment).
- Manifest에서 클래스를 정의하십시오.
- 작업 시작-아래 메뉴 코드를 참조하십시오.
단일 설정 화면을 표시하는 기본 설정 클래스입니다.
public class SettingsActivity extends PreferenceActivity {
private final static String TAG = "SettingsAcitivity";
public SettingsActivity() {}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyLog.d(TAG, "onCreate");
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new LocationFragment()).commit();
}
public class LocationFragment extends PreferenceFragment {
private final static String TAG = "LocationFragment";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyLog.d(TAG, "onCreate");
addPreferencesFromResource(R.xml.locationsettings);
}
}
}
설정을 표시하는 코드 :
@Override
public boolean onOptionsItemSelected(MenuItem item) {
MyLog.d(TAG, "onOptionsItemSelected");
switch (item.getItemId()) {
case R.id.menu_main_help:
break;
case R.id.menu_main_about:
break;
case R.id.menu_main_settings:
MyLog.d(TAG, "Settings");
Intent settingsIntent = new Intent(this, SettingsActivity.class);
startActivity(settingsIntent);
break;
}
return true;
}
The Back key terminates the SettingsActivity. The built in preference routines save any changes. The onResume function I have does a getSettings() that updates any changed settings used by the calling activity (MainActivity in this case).
That's it.
참고URL : https://stackoverflow.com/questions/11380051/single-page-preferenceactivity-w-no-headers-fragments
'Programing' 카테고리의 다른 글
조건부 문자열 형식을 구현하는 방법은 무엇입니까? (0) | 2020.12.01 |
---|---|
postgresql datetime에 일 수를 추가하는 방법 (0) | 2020.12.01 |
내 활동 컨텍스트를 얻는 방법은 무엇입니까? (0) | 2020.12.01 |
C # long 유형에 해당하는 SQL Server 유형은 무엇입니까? (0) | 2020.12.01 |
악명 높은 어셈블리 바인딩 오류 (0) | 2020.11.30 |