android 在首选项中添加搜索栏

ilmyapht  于 2023-03-16  发布在  Android
关注(0)|答案(3)|浏览(148)

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

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个按钮,保存和取消!
我的问题来了:
我可以在seekbar旁边添加一个textview或者其他东西来查看seekbar当前指向的值吗?
如何获得用户输入的值?
谢谢!

vptzau2j

vptzau2j1#

这将捕获seekbar的ontouch侦听器,并根据seekbar值的变化更改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;
     }
});
vdgimpew

vdgimpew3#

现在,Android支持这种行为开箱即用,只需将下面的行添加到您的SeekBarPreference

app:showSeekBarValue="true"

相关问题