Android-应用程序不断崩溃并出现错误-我认为这与首选项片段有关

狮子789

我不断收到与首选项有关的错误,我知道它已经贬值了,所以我在这里寻求帮助http://developer.android.com/reference/android/preference/PreferenceFragment.html

我完全按照底部所说的做...

这是错误:

12-04 00:39:37.553: E/AndroidRuntime(1164): FATAL EXCEPTION: main
12-04 00:39:37.553: E/AndroidRuntime(1164): Process: com.proteintracker, PID: 1164
12-04 00:39:37.553: E/AndroidRuntime(1164): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.proteintracker/com.proteintracker.MainPreferenceActivity}: java.lang.ClassCastException: com.proteintracker.MainPreferenceActivity cannot be cast to android.app.Activity
12-04 00:39:37.553: E/AndroidRuntime(1164):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2102)
12-04 00:39:37.553: E/AndroidRuntime(1164):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2226)
12-04 00:39:37.553: E/AndroidRuntime(1164):     at android.app.ActivityThread.access$700(ActivityThread.java:135)
12-04 00:39:37.553: E/AndroidRuntime(1164):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1397)
12-04 00:39:37.553: E/AndroidRuntime(1164):     at android.os.Handler.dispatchMessage(Handler.java:102)
12-04 00:39:37.553: E/AndroidRuntime(1164):     at android.os.Looper.loop(Looper.java:137)
12-04 00:39:37.553: E/AndroidRuntime(1164):     at android.app.ActivityThread.main(ActivityThread.java:4998)
12-04 00:39:37.553: E/AndroidRuntime(1164):     at java.lang.reflect.Method.invokeNative(Native Method)
12-04 00:39:37.553: E/AndroidRuntime(1164):     at java.lang.reflect.Method.invoke(Method.java:515)
12-04 00:39:37.553: E/AndroidRuntime(1164):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:777)
12-04 00:39:37.553: E/AndroidRuntime(1164):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:593)
12-04 00:39:37.553: E/AndroidRuntime(1164):     at dalvik.system.NativeStart.main(Native Method)
12-04 00:39:37.553: E/AndroidRuntime(1164): Caused by: java.lang.ClassCastException: com.proteintracker.MainPreferenceActivity cannot be cast to android.app.Activity
12-04 00:39:37.553: E/AndroidRuntime(1164):     at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
12-04 00:39:37.553: E/AndroidRuntime(1164):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2093)
12-04 00:39:37.553: E/AndroidRuntime(1164):     ... 11 more

这是我的Preference类的代码

    package com.proteintracker;

import android.app.Activity;
import android.os.Bundle;

public class MainPreferenceActivity extends Activity {

      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
       // Display the fragment as the main content.
          getFragmentManager().beginTransaction()
                  .replace(android.R.id.content, new MainPreferenceFragment())
                  .commit();

      }
}

这是我的首选项片段类的代码:

package com.proteintracker;

import android.os.Bundle;
import android.preference.PreferenceFragment;

public class MainPreferenceFragment extends PreferenceFragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Load the preferences from an XML resource
        addPreferencesFromResource(R.xml.main_preferences);
    }
}

这是我的xml文件

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

    <EditTextPreference
        android:dialogMessage="Enter grams"
        android:dialogTitle="Protein Grams"
        android:key="gramsPerDay"
        android:title="Grams per day" />

</PreferenceScreen>

这是清单文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.proteintracker"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="18" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        >
        <activity android:name="MainActivity"><intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter></activity><activity
            android:name="MainPreferenceActivity"
            android:label="@string/app_name" >
        </activity>
        <activity android:name="HelpActivity"></activity>

    </application>

</manifest>

编辑 - -

这是我的主要活动文件:

package com.proteintracker;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {

    private OnClickListener buttonListener = new OnClickListener() {

        @Override
        public void onClick(View v) {
            EditText editText = (EditText)findViewById(R.id.editText1);
            Log.d("ProteinTracker", editText.getText().toString());
        }
    };
    private OnClickListener helpButtonListener = new OnClickListener() {

        @Override
        public void onClick(View v) {

            SharedPreferences preferences = getSharedPreferences("default", MODE_PRIVATE);
            String value = preferences.getString("activityTest", "");
            Log.d("ProteinTracker", value);


            Intent intent = new Intent(MainActivity.this, MainPreferenceActivity.class);
            startActivity(intent);

        }
    };



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if(savedInstanceState != null) {
            Log.d("ProteinTracker", savedInstanceState.getString("keyName"));
        }
        TextView textView = (TextView) findViewById(R.id.mainActivityTextView);
        textView.setText(R.string.test_updating_a_view);

        Button button = (Button)findViewById(R.id.button1);
        button.setOnClickListener(buttonListener );

        Button helpButton = (Button)findViewById(R.id.helpButton);
        helpButton.setOnClickListener(helpButtonListener );

        SharedPreferences preferences = getSharedPreferences("default", MODE_PRIVATE);
        Editor editor = preferences.edit();
        editor.putString("activityTest", "activity value");
        editor.commit();

    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        outState.putString("keyName","string");
        super.onSaveInstanceState(outState);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        MenuInflater menuInflater = getMenuInflater();
        menuInflater.inflate(R.menu.main_menu, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        switch(item.getItemId()) {
            case R.id.settingsMenuItem:
                //launch settings activity

            default:
        }

        return super.onOptionsItemSelected(item);
    }



}

我更新了片段文件并添加了一个新文件,并且还包含了我的主要活动文件。

我不确定我需要做什么,我是Java和Android的新手...谢谢!

Melquiades

片段需要添加到活动中。您应该将片段的名称从MainPreferenceActivity更改为MainPreferenceFragment,因此您将拥有:

public class MainPreferenceFragment extends PreferenceFragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Load the preferences from an XML resource
        addPreferencesFromResource(R.xml.main_preferences);
    }
}

然后让MainPreferenceActivity扩展Activity,在其中添加片段:

public class MainPreference Activity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Display the fragment as the main content.
    getFragmentManager().beginTransaction()
            .replace(android.R.id.content, new MainPreferenceFragment())
            .commit();
    }
}

在这里阅读更多

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我的 android 应用程序不断崩溃

来自分类Dev

Android首选项片段OnBackPressed崩溃

来自分类Dev

DisplayMessageActivity后退按钮不断使我的Android应用程序崩溃

来自分类Dev

我的应用程序在Android Studio中不断崩溃

来自分类Dev

DisplayMessageActivity后退按钮不断使我的Android应用程序崩溃

来自分类Dev

我的应用程序在Android Studio中不断崩溃

来自分类Dev

我的 android 应用程序出现错误

来自分类Dev

android应用程序崩溃并出现错误java.lang.RuntimeException:无法实例化活动ComponentInfo

来自分类Dev

Android 应用程序崩溃,没有 logcat 错误

来自分类Dev

使用共享首选项时,Android应用程序崩溃

来自分类Dev

Android模拟器与首选项活动有关的问题

来自分类Dev

Android应用程序不断与Tabhost崩溃

来自分类Dev

Android应用程序不断与Tabhost崩溃

来自分类Dev

在启动我的Android应用程序时出现错误

来自分类Dev

Android setContentView使我的应用程序崩溃

来自分类Dev

我的应用程序不断崩溃

来自分类Dev

我的应用程序不断崩溃

来自分类Dev

从Firebase Firestore获取数据时,我的SwiftUI应用程序崩溃并出现错误。这可能是什么原因造成的?

来自分类Dev

当我单击按钮时,Android 应用程序崩溃,onClickListener 出现问题

来自分类Dev

Android应用程序在此屏幕上崩溃,与多个侦听器有关

来自分类Dev

Android-首选项-如何在我的应用的首选项屏幕中获得操作系统设置样式

来自分类Dev

Android 共享首选项崩溃

来自分类Dev

尝试使用Firebase来获取我的flutter应用程序的获取请求并出现错误

来自分类Dev

当我切换活动或关闭应用程序时,Android中的共享首选项不会保存

来自分类Dev

Excel 代码不断崩溃,但没有代码错误、应用程序定义或对象定义错误

来自分类Dev

带有 Retrofit2 的 Android 应用程序崩溃而没有错误消息

来自分类Dev

如何设置Eclipse以连接到移动设备(生成有关android / ios应用程序崩溃的崩溃日志)

来自分类Dev

Android应用程序不断崩溃,发生致命异常

来自分类Dev

Android应用程序不断崩溃,致命异常

Related 相关文章

  1. 1

    我的 android 应用程序不断崩溃

  2. 2

    Android首选项片段OnBackPressed崩溃

  3. 3

    DisplayMessageActivity后退按钮不断使我的Android应用程序崩溃

  4. 4

    我的应用程序在Android Studio中不断崩溃

  5. 5

    DisplayMessageActivity后退按钮不断使我的Android应用程序崩溃

  6. 6

    我的应用程序在Android Studio中不断崩溃

  7. 7

    我的 android 应用程序出现错误

  8. 8

    android应用程序崩溃并出现错误java.lang.RuntimeException:无法实例化活动ComponentInfo

  9. 9

    Android 应用程序崩溃,没有 logcat 错误

  10. 10

    使用共享首选项时,Android应用程序崩溃

  11. 11

    Android模拟器与首选项活动有关的问题

  12. 12

    Android应用程序不断与Tabhost崩溃

  13. 13

    Android应用程序不断与Tabhost崩溃

  14. 14

    在启动我的Android应用程序时出现错误

  15. 15

    Android setContentView使我的应用程序崩溃

  16. 16

    我的应用程序不断崩溃

  17. 17

    我的应用程序不断崩溃

  18. 18

    从Firebase Firestore获取数据时,我的SwiftUI应用程序崩溃并出现错误。这可能是什么原因造成的?

  19. 19

    当我单击按钮时,Android 应用程序崩溃,onClickListener 出现问题

  20. 20

    Android应用程序在此屏幕上崩溃,与多个侦听器有关

  21. 21

    Android-首选项-如何在我的应用的首选项屏幕中获得操作系统设置样式

  22. 22

    Android 共享首选项崩溃

  23. 23

    尝试使用Firebase来获取我的flutter应用程序的获取请求并出现错误

  24. 24

    当我切换活动或关闭应用程序时,Android中的共享首选项不会保存

  25. 25

    Excel 代码不断崩溃,但没有代码错误、应用程序定义或对象定义错误

  26. 26

    带有 Retrofit2 的 Android 应用程序崩溃而没有错误消息

  27. 27

    如何设置Eclipse以连接到移动设备(生成有关android / ios应用程序崩溃的崩溃日志)

  28. 28

    Android应用程序不断崩溃,发生致命异常

  29. 29

    Android应用程序不断崩溃,致命异常

热门标签

归档