Android Studio 0.5.2
您好,
我有一个首选屏幕,它有自定义首选项布局,因为我想添加一个搜索栏 设置中的灵敏度选择。
但是,我似乎无法找到视图ID(mSbrSensitivity - seekbar)来将ChangeListener设置为null。
我不想使用setContentView(R.layout.custom_prefs)
,因为这会显示用户界面,当我拨打addPreferenceFromResource(R.xml.prefs)
时,它会再次显示布局,因为我喜欢此设置到我的custom_prefs
布局。
public class SettingsActivity extends PreferenceActivity {
private SeekBar mSbrSensitivity;
@Override
protected void onCreate(Bundle saveInstanceState) {
super.onCreate(saveInstanceState);
LayoutInflater inflater = getLayoutInflater();
inflater.inflate(R.layout.custom_prefs, null);
addPreferencesFromResource(R.xml.prefs);
/* Get views */
mSbrSensitivity = (SeekBar)findViewById(R.id.sbSensitivity); // Returns NULL
/* Set listeners */
mSbrSensitivity.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
/* More stuff here */
}
我的偏好设置屏幕:
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
android:key="custom_prefs_key">
<Preference
android:key="SensorKey"
android:title="Sensitivity"
android:summary="Adjust how sentivitive you are"
android:layout="@layout/custom_prefs"> <!-- Load custom prefs layout -->
</Preference>
</PreferenceScreen>
我的自定义偏好设置:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<SeekBar
android:id="@+id/sbSensitivity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/tvDisplay"/>
<TextView
android:id="@+id/tvDisplay"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"/>
<ListView
android:id="@android:id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/sbSensitivity">
</ListView>
</RelativeLayout>
非常感谢任何建议,