メニューを押して->設定を行い、インテントを起動するウィンドウしかありません
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_settings:
startActivity(new Intent(this, com.example.app.PreferenciasGenerales.class));
return true;
default:
return false;
}
}
自動的に、アプリケーションを閉じる必要があると表示されます。
キャッチされていないハンドラー: キャッチされていない例外
java.lang.RuntimeException: アクティビティ ComponentInfo を開始できません:
java.lang.ClassCastException: java.lang.Integer
at Android .app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
で android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
で android.app.ActivityThread.access$2200(ActivityThread.java:119)
で android.app.ActivityThread $H.handleMessage(ActivityThread.java:1863)
で android.os.Handler.dispatchMessage(Handler.java:99)
で android.os.Looper.loop(Looper.java:123)
android.app.ActivityThread.main(ActivityThread.java:4363)
で java.lang.reflect.Method.invokeNative(ネイティブ メソッド)
で java.lang.reflect.Method.invoke(Method.java:521)
で com.android .internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
で com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
で dalvik.system.NativeStart.main(ネイティブ メソッド)
原因: java.lang.ClassCastException: java.lang.Integer at android.app.ApplicationContext$SharedPreferencesImpl.getString(ApplicationContext.java:2572) at android.preference.Preference.getPersistedString(Preference.java:1250) at android.preference .ListPreference.onSetInitialValue(ListPreference.java:232) で android.preference.Preference.dispatchSetInitialValue(Preference.java:1173) で android.preference.Preference.onAttachedToHierarchy(Preference.java:985) で android.preference.PreferenceGroup.addPreference( PreferenceGroup.java:156) で android.preference.PreferenceGroup.addItemFromInflater(PreferenceGroup.java:97) で android.preference.PreferenceGroup.addItemFromInflater(PreferenceGroup.java:38) で android.preference.GenericInflater.android.preference.GenericInflater.rInflate(GenericInflater.java:493) の rInflate(GenericInflater.java:488) android.preference.GenericInflater.inflate(GenericInflater.java:326) の android.preference.GenericInflater.inflate(GenericInflater.java) :263) android.preference.PreferenceManager.inflateFromResource(PreferenceManager.java:254) で android.preference.PreferenceActivity.addPreferencesFromResource(PreferenceActivity.java:253) -> com.example.app.PreferenciasGenerales.onCreate(PreferenciasGenerales.java: 34) android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) で android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) ... 11 もっと見るrInflate(GenericInflater.java:493) で android.preference.GenericInflater.inflate(GenericInflater.java:326) で android.preference.GenericInflater.inflate(GenericInflater.java:263) で android.preference.PreferenceManager.inflateFromResource(PreferenceManager.java) :254) android.preference.PreferenceActivity.addPreferencesFromResource(PreferenceActivity.java:253) で -> com.example.app.PreferenciasGenerales.onCreate(PreferenciasGenerales.java:34) で android.app.Instrumentation.callActivityOnCreate(Instrumentation.java: 1047) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) ... 11 もっと見るrInflate(GenericInflater.java:493) で android.preference.GenericInflater.inflate(GenericInflater.java:326) で android.preference.GenericInflater.inflate(GenericInflater.java:263) で android.preference.PreferenceManager.inflateFromResource(PreferenceManager.java) :254) android.preference.PreferenceActivity.addPreferencesFromResource(PreferenceActivity.java:253) で -> com.example.app.PreferenciasGenerales.onCreate(PreferenciasGenerales.java:34) で android.app.Instrumentation.callActivityOnCreate(Instrumentation.java: 1047) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) ... 11 もっと見るinflate(GenericInflater.java:263) で android.preference.PreferenceManager.inflateFromResource(PreferenceManager.java:254) で android.preference.PreferenceActivity.addPreferencesFromResource(PreferenceActivity.java:253) -> com.example.app.PreferenciasGenerales.onCreate で(PreferenciasGenerales.java:34) android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) で android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) ... 11 詳細inflate(GenericInflater.java:263) で android.preference.PreferenceManager.inflateFromResource(PreferenceManager.java:254) で android.preference.PreferenceActivity.addPreferencesFromResource(PreferenceActivity.java:253) -> com.example.app.PreferenciasGenerales.onCreate で(PreferenciasGenerales.java:34) android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) で android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) ... 11 詳細34) android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) で android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) ... 11 もっと見る34) android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) で android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) ... 11 もっと見る
起動したい PreferenceActivity は次のとおりです。
public class PreferenciasGenerales extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/*->*/addPreferencesFromResource(R.xml.preferencias_general);/*<- Here is the exception at StackTrace */
}
@Override
protected void onStop() {
final ProgressDialog waitDialog =
ProgressDialog.show( this, "Wait", "i'm testing that those things you write are correct...", true);
waitDialog.setCancelable(false);
/* Cannot have integers array on ListPreference
* http://code.google.com/p/android/issues/detail?id=2096 */
String old_debug_level = PreferenceManager.getDefaultSharedPreferences(this).getString("debug_level", "3");
PreferenceManager.getDefaultSharedPreferences(this).edit()
.remove("debug_level")
.putInt("debug_level", Integer.parseInt(old_debug_level))
.commit();
old_debug_level = null;
String api_server = PreferenceManager.getDefaultSharedPreferences(PreferenciasGenerales.this).getString("api_server", "");
String account_id = PreferenceManager.getDefaultSharedPreferences(PreferenciasGenerales.this).getString("account_id", "");
String account_pass = PreferenceManager.getDefaultSharedPreferences(PreferenciasGenerales.this).getString("account_pass", "");
String account_key = PreferenceManager.getDefaultSharedPreferences(PreferenciasGenerales.this).getString("account_key", "");
boolean debug_enabled= PreferenceManager.getDefaultSharedPreferences(PreferenciasGenerales.this).getBoolean("debug_enabled", false);
int debug_level = PreferenceManager.getDefaultSharedPreferences(PreferenciasGenerales.this).getInt("debug_level", 3);
try {
// Connect to API to test credentials...
PreferenceActivity に関連する必要なものは他にもあります。strings.xml の値が多すぎてスペイン語であるため、すべて削除しました。title、hint、dialogTitle などのすべての文字列が存在し、正しい。彼らは他の活動に取り組んでいます
/res/xml/preferencias_general.xml
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCategory>
<EditTextPreference android:key="api_server"/>
</PreferenceCategory>
<PreferenceCategory android:title="@string/preferencias_cuenta_categoria_title">
<EditTextPreference android:key="account_id" />
<EditTextPreference android:key="account_pass" />
<EditTextPreference android:key="account_key" />
</PreferenceCategory>
<PreferenceCategory android:key="debug_enabled" />
<ListPreference android:key="debug_level" android:entryValues="@array/debug_level_entryValues" android:entries="@array/debug_level_entries" />
</PreferenceCategory>
/res/values/preferencias_general.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="debug_level_entries">
<item>VERBOSE</item>
<item>DEBUG</item>
<item>INFO</item>
<item>WARN</item>
<item>ERROR</item>
</string-array>
<string-array name="debug_level_entryValues">
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
</string-array>
--
更新 1 @CommonsWere への回答で、データを消去しましたが、不完全であることが示されています。
その前に、終了しようとすると、新しい例外が発生します。
java.lang.RuntimeException: アクティビティを停止できません {com.merinosa.kimera/com.merinosa.kimera.PreferenciasGenerales}: java.lang.IllegalStateException: ターゲット ホストを null にすることも、パラメーターで設定することもできません。android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3421) で android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3487) で android.app.ActivityThread.access$2800(ActivityThread.java:119) で android.app .ActivityThread$H.handleMessage(ActivityThread.java:1896) で android.os.Handler.dispatchMessage(Handler.java:99) で android.os.Looper.loop(Looper.java:123) で android.app.ActivityThread. main(ActivityThread.java:4363) の java.lang.reflect.Method.invokeNative(ネイティブ メソッド) の java.lang.reflect.Method.invoke(Method.java: 521) com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) で com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) で dalvik.system.NativeStart.main で(ネイティブ メソッド) 原因: java.lang.IllegalStateException: ターゲット ホストを null にすることも、パラメーターに設定することもできません。org.apache.http.impl.client.DefaultRequestDirector.determineRoute(DefaultRequestDirector.java:561) で org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:292) で org.apache.http.impl .client.AbstractHttpClient.execute(AbstractHttpClient.java:555) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient) .java:465) com で。
構成が正しいかどうかをどこでテストする必要がありますか? アプリを再度実行すると、最初のエラーが再び発生します。
--
更新 2
私の新しいエラーは元の質問とは関係がないため、回答済みとして設定できます。エラーが再発する理由は、CommonsWareが受け入れた回答で言うように設定を変更したためです。
設定を終了すると、onStop() が実行され、SharedPreferences が整数に変更され、「キャスト不可」になります。
新しいエラーは適切に調査し、必要に応じて再度質問する必要があります。