扩充布局以获取资源(视图)ID

时间:2014-03-26 05:40:58

标签: android layout-inflater

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>

非常感谢任何建议,

0 个答案:

没有答案