Tercihler ekranı kullanarak ActionBar Sherlock
Bir Android uygulaması ActionBarSherlock
kullanarak yapıyorum.
Benim sorunum ekran tercihi yapmak için. SherlockPreferenceActivity
Sınıf onBuildHeader()
yöntemi nerver denir.
Bu benim kodudur
preference_headers.xml
<preference-headers xmlns:android="http://schemas.android.com/apk/res/android" >
<header
android:fragment="package.fragments.MyPreferenceFragment"
android:icon="@drawable/bulle"
android:summary="An example of some preferences."
android:title="title" />
</preference-headers>
preferences.xml
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/options" >
<PreferenceCategory>
<SwitchPreference
android:id="@ id/cb_notif"
android:defaultValue="false"
android:key="com.vincent.HTC_Dev.pref.notif"
android:summaryOff="@string/notifications_off"
android:summaryOn="@string/notifications_on"
android:title="@string/notifications" />
</PreferenceCategory>
</PreferenceScreen>
MyPreferenceActivity
public class MyPreferenceActivity extends SherlockPreferenceActivity {
@Override
public void onBuildHeaders(List<Header> target) {
super.onBuildHeaders(target);
loadHeadersFromResource(R.xml.preference_headers, target);
}
}
MyPreferenceFragment
public class MyPreferenceFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
// TODO Auto-generated method stub
}
}
CEVAP
onBuildHeaders()
yalnızca API Level 11 veya daha yüksek çalıştırıyorsanız adı verilecek. Eski aygıtlarda, addPreferencesFromResource()
klasik yaklaşım geri döndü.
API Level 11 PreferenceFragment
ve Android eski sürümlerinde klasik tercihleri destekleyen bir örnek için this sample project bkz.
Özellikle SherlockFragmentActivity
onun gibi görünür:
package com.commonsware.android.preffragsbc;
import java.util.List;
import android.os.Build;
import android.os.Bundle;
import com.actionbarsherlock.app.SherlockPreferenceActivity;
public class EditPreferences extends SherlockPreferenceActivity {
@SuppressWarnings("deprecation")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT<Build.VERSION_CODES.HONEYCOMB) {
addPreferencesFromResource(R.xml.preferences);
addPreferencesFromResource(R.xml.preferences2);
}
}
@Override
public void onBuildHeaders(List<Header> target) {
loadHeadersFromResource(R.xml.preference_headers, target);
}
}
onCreate()
ihtiyacımız varsadece*18.* ^em>eğereski bir cihaz. Bu durumda, benim örnek ikisi de addPreferencesFromResource()
diyoruz yani iki tercih başlıklar, ve bu nedenle iki tercih XML dosyaları vardır. , onCreate()
yeni cihazlar üzerindeki hiçbir şey ama onBuildHeaders()
çağrısı tetikleyecek üst, zincir.
Arka plan nasıl ActionBarActivity bir ...
Android Ayarları Ekranı oluşturmak içi...
Nasıl belgeleri node.js kullanarak Gel...
Nasıl uyarı '' JSHint ve Req...
Java kullanarak bir ekran görüntüsü al...