在首选项中添加搜索栏

时间:2011-07-18 22:38:06

标签: android

我做了一个偏好列表。我从代码中得到它

 addPreferencesFromResource(R.xml.preferencelayout);

这将我带到我的preferencelayout.xml文件中,其中包含以下内容:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
  xmlns:android="http://schemas.android.com/apk/res/android">

<PreferenceCategory android:title="Settings">
<ListPreference
   android:key="listPref"
   android:title="Shake sensitivity"
   android:summary=""
   android:entries="@array/listArray"
   android:entryValues="@array/listValues"
   android:defaultValue="165" />


   <SeekBarPreference
   android:defaultValue="22"
   android:title="Set the default time"
   android:key="seekBar">
   </SeekBarPreference>

 <CheckBoxPreference
   android:key="checkboxPref"
   android:title="Autodecrease music"
   android:summary=""
   android:defaultValue="true"/>
 </PreferenceCategory>
 </PreferenceScreen>

当我按下SeekBarPreference按钮时,会出现一个包含Seekbar和2个按钮的对话框,保存并取消!

我的问题出现了:

我可以添加textview或在搜索栏旁边显示的内容,以查看搜索栏当前指向的值吗?

如何获取用户输入的值?

谢谢!

3 个答案:

答案 0 :(得分:0)

您可以从OnSeekBarChangeListener获得价值。

答案 1 :(得分:0)

这将捕获搜索栏的ontouch侦听器,并将根据搜索栏的值更改来更改textview的文本。

SeekBar bar = (SeekBar)findViewById(R.id.seekbar);
bar.setOnTouchListener(new SeekBar.OnTouchListener()
{
    public boolean onTouch(View v, MotionEvent arg1)
    {
        View parent = (View)v.getParent();
        TextView textView = (TextView)parent.findViewById(R.id.seekbarProgress);
        if (textView != null)
        {
            SeekBar seekBar = (SeekBar)v;
            int progress = seekBar.getProgress();
            textView.setText(seekBar.getProgress() + "/" + seekBar.getMax());
        }
        return false;
     }
});

答案 2 :(得分:0)

现在,Android开箱即用地支持此行为,只需将以下行添加到您的SeekBarPreference

   app:showSeekBarValue="true"