标签: edittextpreference

Android EditText首选项验证

我使用Edittextpreference作为设置部分中的首选项之一.我想在用户向其输入数据并单击确定时验证此edittextpreference; 在将其保存在共享首选项之前.

我试图做这样的事情,但这首先保存了我的偏好.

editTextPreference
            .setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
                @Override
                public boolean onPreferenceChange(Preference preference,
                        Object newValue) {
                    if (((newValue.toString().length() == 15) {
                          // save preference only if length is equal to 15
                     }
              })
               });
Run Code Online (Sandbox Code Playgroud)

有人可以指导我如何验证edittextpreference之前保存在sharedpreference中,以便我可以决定是否要保存它.

android sharedpreferences edittextpreference

10
推荐指数
1
解决办法
5770
查看次数

如何启用/禁用首选项?

我想让EditTextPreference不可编辑(例如,单击 "设置"页面中的项目时没有任何反应).我怎么做?

这是我的代码:

<PreferenceCategory android:title="My Account" >

    <EditTextPreference
        android:clickable="false"
        android:focusable="false"
        android:focusableInTouchMode="false"
        android:key="username_pref"
        android:summary="     "
        android:title="Username" >
    </EditTextPreference>

</PreferenceCategory>
Run Code Online (Sandbox Code Playgroud)

android android-preferences edittextpreference

9
推荐指数
2
解决办法
7789
查看次数

Android支持EditTextPreference输入类型

有没有办法为其指定输入法类型android.support.v7.preference.EditTextPreference

android edittextpreference android-support-library

9
推荐指数
2
解决办法
6406
查看次数

如何以编程方式将EditTextPreferences添加到我的PreferenceFragment?

我是Android的新手,所以我需要一些关于如何以编程方式EditTextPreference对象添加到PreferenceFragment的指导.

我从Web服务中提取值列表.我已将它们成功保存到我的SharedPreferences中,并使用它们生成URL(路径部分).

我希望我的应用程序的用户能够编辑这些值,但在Google上进行大量搜索之后,我不清楚如何以编程方式EditTextPreference对象添加到我的PreferenceFragment中.

请注意,我的PreferenceFragment适用于SharedPreferences值,我将其作为名称硬编码到首选项xml文件(PreferenceScreen)中.我也知道如何获取我的SharedPreferences,所以不要担心必须向我解释这部分.

我在PreferenceFragment的onCreate中使用addPreferencesFromResource.我应该在onCreateView中添加它们吗?我以为我可以获得PreferenceCategory并在那里添加它们?但同样,我不知道该怎么做.我真的很感激你的帮助!

//代码

PrefsFragment.java:
package com.example.lorddoineedhelp;

import android.os.Bundle;
import android.preference.PreferenceFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class PrefsFragment extends PreferenceFragment {
  @Override
  public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   addPreferencesFromResource(R.xml.preferences); 
  }

  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v = super.onCreateView(inflater, container, …
Run Code Online (Sandbox Code Playgroud)

android preferencescreen edittextpreference

8
推荐指数
2
解决办法
7495
查看次数

验证editTextPreference Android

我已经阅读了关于这个问题的许多答案,但我的问题是询问我放置代码的位置.我希望验证一个数字大于100 edittextPreference.这是我用来填充优先顺序的代码:

public class SettingsFrag extends PreferenceFragment{

  //Override onCreate so that the code will run when the activity is started.
  @Override
  public void onCreate(Bundle savedInstanceState){        
          //Call to the super class.
          super.onCreate(savedInstanceState);

          //add the preferences from the XML file.
          addPreferencesFromResource(R.xml.preferences);
  }
Run Code Online (Sandbox Code Playgroud)

}

它在这里我添加验证还是我必须创建另一个类?

的preferences.xml:

    <EditTextPreference             
        android:key="geofence_range"             
        android:title="Geofence Size"             
        android:defaultValue="500"     
        android:inputType="number"
        android:summary="Geofence Size Around User Location"             
        android:dialogTitle="Enter Size (meters):" /> 
Run Code Online (Sandbox Code Playgroud)

android edittextpreference

7
推荐指数
2
解决办法
3542
查看次数

我们如何在EditTextPreference中使用android:inputType?

我检查了EditTextPreference的文档 http://developer.android.com/reference/android/preference/EditTextPreference.html

但我没有在那里找到android:inputType属性.然后如何在此代码段中使用它

<EditTextPreference
        android:key="edit"
        android:title="@string/location1"
        android:summary="@string/summary1"
        android:dialogTitle="@string/location1"
        android:dialogMessage="@string/message"
        android:inputType="text"
        android:singleLine="true"
        />
Run Code Online (Sandbox Code Playgroud)

同样怀疑android:singleLine属性.

xml android edittextpreference

7
推荐指数
1
解决办法
3191
查看次数

EditTextPreference导致Inflate Exception

大约1小时后,在相关主题中寻找我的问题的解决方案,我决定公开我的案例.这是:我每次尝试打开PreferenceActivity时都会出现InflateException.

日志

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: lineo.smarteam, PID: 5087
                  Theme: themes:{}
                  java.lang.RuntimeException: Unable to start activity ComponentInfo{lineo.smarteam/lineo.smarteam.activity.SettingsActivity}: android.view.InflateException: Binary XML file line #5: Error inflating class lineo.smarteam.preference.MyEditTextPreference
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2450)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2510)
                      at android.app.ActivityThread.-wrap11(ActivityThread.java)
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363)
                      at android.os.Handler.dispatchMessage(Handler.java:102)
                      at android.os.Looper.loop(Looper.java:148)
                      at android.app.ActivityThread.main(ActivityThread.java:5461)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
                   Caused by: android.view.InflateException: Binary XML file line #5: Error inflating class lineo.smarteam.preference.MyEditTextPreference
                      at android.preference.GenericInflater.createItem(GenericInflater.java:388)
                      at android.preference.GenericInflater.createItemFromTag(GenericInflater.java:432)
                      at android.preference.GenericInflater.rInflate(GenericInflater.java:483)
                      at android.preference.GenericInflater.rInflate(GenericInflater.java:495)
                      at android.preference.GenericInflater.inflate(GenericInflater.java:327)
                      at android.preference.GenericInflater.inflate(GenericInflater.java:264)
                      at android.preference.PreferenceManager.inflateFromResource(PreferenceManager.java:273)
                      at android.preference.PreferenceFragment.addPreferencesFromResource(PreferenceFragment.java:304)
                      at lineo.smarteam.activity.SettingsActivity$SettingsFragment.onCreate(SettingsActivity.java:57)
                      at …
Run Code Online (Sandbox Code Playgroud)

android preferenceactivity android-preferences inflate-exception edittextpreference

7
推荐指数
1
解决办法
558
查看次数

Android EditTextPreference 样式

在我的设置中的应用程序中,我使用 EditTextPreference ,并且在 android API 上 uder 11 edittext 字段具有黑色背景和黑色文本颜色。如何更改 EditTextPreferences 背景颜色?

我试过:在主题中:

<item name="android:editTextPreferenceStyle">@style/EditTextAppTheme</item>
Run Code Online (Sandbox Code Playgroud)

很有型:

<style name="EditTextAppTheme" parent="android:Widget.EditText">
      <item name="android:background">@drawable/edit_text_holo_light</item>
      <item name="android:textColor">#000000</item>
  </style>
Run Code Online (Sandbox Code Playgroud)

如果我将样式设置为:

<style name="EditTextPreferences" parent="android:Preference.DeviceDefault.DialogPreference.EditTextPreference">
      <item name="android:background">@drawable/edit_text_holo_light</item>
      <item name="android:textColor">#FF0000</item>
  </style>
Run Code Online (Sandbox Code Playgroud)

和主题:

<item name="android:editTextPreferenceStyle">@style/EditTextPreferences</item>
Run Code Online (Sandbox Code Playgroud)

我有错误:

error: Error retrieving parent for item: No resource found that matches the given name 'android:Preference.DeviceDefault.DialogPreference.EditTextPreference'.
Run Code Online (Sandbox Code Playgroud)

java android styles android-edittext edittextpreference

6
推荐指数
1
解决办法
5478
查看次数

Android如何从SharedPreference设置EditTextPreference的默认值?

这次在同一个项目中,我面临一个稍微具有挑战性的问题,在res / xml文件夹中的settings.xml文件中:

<EditTextPreference
    android:key="weight" 
    android:title="@string/update_user_weight"
    android:persistent="true"
    android:dialogTitle="@string/update_user_weight"
    android:dialogMessage="@string/update_user_weight_message"
    android:defaultValue="" />

<EditTextPreference
    android:key="age"
    android:title="@string/update_user_age"
    android:persistent="true"
    android:dialogTitle="@string/update_user_age"
    android:dialogMessage="@string/update_user_age_message"
    android:defaultValue="" />
Run Code Online (Sandbox Code Playgroud)

并在类文件UserData.java中:

SharedPreferences storeWeightAndAge = getSharedPreferences("WeightAndAgeStorage", Context.MODE_PRIVATE);
Editor store = storeWeightAndAge.edit();
store.putString("weight", weightData);
store.putString("age", ageData);
store.commit();
Run Code Online (Sandbox Code Playgroud)

我想在这里做的是设置在上述两个EditTextPreferences' android:defaultValue存储weightageSharedPreferences 分别。

现在,我该怎么做呢?

编辑:提供了使用settings.xml文件的Settings.java文件:

package com.example.drinkup;

import android.content.SharedPreferences;
import android.os.*;
import android.preference.PreferenceFragment;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;

public class Settings extends PreferenceActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.settings);



    }

}
Run Code Online (Sandbox Code Playgroud)

java android sharedpreferences edittextpreference

5
推荐指数
2
解决办法
2万
查看次数

Android-一旦关闭对话框,EditTextPreference不会关闭键盘

我使用的是建立一个设置屏幕PreferenceFragmentPreferenceActivity。除烦人的问题外,一切正常,除了在EditTextPreference对话框关闭后通过单击“取消”,“确定”或在对话框外单击,软键盘仍然可见。

这是我使用API​​级别15(4.0.3)构建的第一个应用程序。我以前的应用程序是针对API级别8(2.2)的,仅用PreferenceActivity于其设置(无片段)。在该应用程序中,在单击“取消”,“确定”或在对话框外部时,键盘始终自动关闭-无需输入代码。

现在,在关闭EditTextPreference对话框后必须对键盘的关闭进行编码是否正常?如果是这样,我需要使用哪个事件来捕获此事件?

keyboard android preferenceactivity android-softkeyboard edittextpreference

5
推荐指数
0
解决办法
619
查看次数