EditTextPreference
の値が特定のint
の範囲内にあることを検証したいとします(1から22と言うことができます)。検証できる唯一の部分は、inputType
(数字のみ)で、prefs.xmlファイルに次のxml宣言が含まれていました。特定のint範囲のEditTextPreference値を検証する方法
アンドロイド:inputTypeは=「数」
私は2つ目はListSettings
活動に次のコードを記述することです。
public class ListSettings extends PreferenceActivity implements OnSharedPreferenceChangeListener{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.prefs);
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
sp.registerOnSharedPreferenceChangeListener(this);
}
public void onSharedPreferenceChanged(SharedPreferences sp, String key) {
String value = sp.getString(key, null);
int intZoomValue = Integer.parseInt(value);
if (intZoomValue < 1 || intZoomValue > 22) {
Intent intent = new Intent().setClass(this, dialog.class);
// I want to call the dialog activity here...
}
}
とdialog.classは以下の通りです:私が達成したい何
public class dialog extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Please enter a value between 1-22!");
builder.setCancelable(true);
AlertDialog alert = builder.create();
alert.show();
}
}
は、ユーザーがない範囲1に値を入力するたびdialog.class
(警告ダイアログボックス)を呼び出すことです-22。
私は本当に正しい方法で検証する方法を理解できません。
[設定]メニューでスピナーを使用できるかどうかわかりません。トーストはユーザーに無効な入力を知らせるために正常に機能しましたが、値を許容範囲にクランプする方法はわかりません。私はそれに取り組んでいます。 – sotoz