当前位置: 首页 > 知识库问答 >
问题:

在共享首选项中保存某些数据时线程退出

关翰
2023-03-14

我想在我的共享首选项中保存一些数据,但在保存时,例外情况如下。在第SharedReferences行。编辑器存储=默认数据。编辑();

05-29 20:20:53.234:E/AndroidRuntime(27650):致命异常:main 05-29 20:20:53.234:E/AndroidRuntime(27650):java。lang.NullPointerException 05-29 20:20:53.234:E/AndroidRuntime(27650):位于com。实例尼巴耶。默认详细信息。onClick(DefaultDetails.java:92)05-2920:20:53.234:E/AndroidRuntime(27650):在android上。看法看法performClick(View.java:2485)05-2920:20:53.234:E/AndroidRuntime(27650):在android上。看法查看$PerformClick。运行(View.java:9080)05-2920:20:53.234:E/AndroidRuntime(27650):在android上运行。操作系统。处理程序。handleCallback(Handler.java:587)05-2920:20:53.234:E/AndroidRuntime(27650):在android上。操作系统。处理程序。dispatchMessage(Handler.java:92)05-2920:20:53.234:E/AndroidRuntime(27650):在android上。操作系统。活套。loop(Looper.java:130)05-2920:20:53.234:E/AndroidRuntime(27650):在android上。应用程序。活动线程。main(ActivityThread.java:3687)05-2920:20:53.234:E/AndroidRuntime(27650):在java。朗。反思。方法Invokenactive(本机方法)05-29 20:20:53.234:E/AndroidRuntime(27650):在java上。朗。反思。方法invoke(Method.java:507)05-2920:20:53.234:E/AndroidRuntime(27650):在com上。Android内部的操作系统。ZygoteInit$MethodandArgscaler。运行(ZygoteInit.java:867)05-2920:20:53.234:E/AndroidRuntime(27650):在com上。Android内部的操作系统。合子体。main(ZygoteInit.java:625)05-2920:20:53.234:E/AndroidRuntime(27650):在dalvik。系统原生艺术。主(本机方法)

Java代码包com.example.nirbhaya;

import java.util.regex.Pattern;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class DefaultDetails extends Activity implements OnClickListener{

    Button save,reset;
    EditText dMob,dMsg,dEmail;
    String defMobNo,defMsg,defEmail;
    SharedPreferences DefaultData;

    private static final String TAG = "DD-Activity";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.defaultdetails);

        initializing();

    }
    private void initializing() {
        // TODO Auto-generated method stub


        save = (Button)findViewById(R.id.bsave1);
        reset = (Button)findViewById(R.id.bReset);

        dMob = (EditText)findViewById(R.id.etDefMobNo);
        dMsg = (EditText)findViewById(R.id.etDefMsg);
        dEmail = (EditText)findViewById(R.id.etDefEmail);

        save.setOnClickListener(this);
        reset.setOnClickListener(this);


    }
    @Override
    public void onClick(View arg0) {
        // TODO Auto-generated method stub
        switch(arg0.getId())
        {
        case R.id.bsave1:
            defMobNo = dMob.getText().toString();
            defMsg = dMsg.getText().toString();
            defEmail = dEmail.getText().toString();

                Log.i(TAG,"DONE");
                SharedPreferences.Editor store = DefaultData.edit();
                store.putString("defMobileNo", defMobNo);
                store.putString("defMessgae", defMsg);
                store.putString("defEMail", defEmail);
                store.commit();
                Intent openStartingPoint = new Intent (getApplicationContext(), CurrentDetails.class);
                startActivity(openStartingPoint);


            break;
        case R.id.bReset:
            ((EditText) findViewById(R.id.etDefMobNo)).setText("");
            ((EditText) findViewById(R.id.etDefEmail)).setText("");
            ((EditText) findViewById(R.id.etDefMsg)).setText("");


            break;
        }

    }



}

共有1个答案

苍烨然
2023-03-14

您没有初始化DefaultData

DefaultData = getSharedPreferences("SHARED_PREFS_NAME", Activity.MODE_PRIVATE);
 类似资料:
  • 我正在创建一个番茄工作计时器应用程序。它有2项活动: 主要活动是设置时间 我已经创建了一个对象,它保存了设置的时间,我希望这些时间显示在Recents活动中的按钮中。但是,似乎没有保存数据,而是显示了包名称。

  • 我正在向SharedPreference添加一个集合。这是来自另一个类的静态集,该类处理一些数据并将其存储在该集中。 然后我转到另一个活动(订单活动),在那里我显示了这组信息。第一次访问共享偏好时,我能够获得正确的详细信息。例如name1、name2、name3。 然后,我离开此活动,返回到另一个活动,添加另一个名称,然后再次返回到此 Order 活动。我希望这次得到名称1,名称2,名称3,名称4

  • 你好,我正在尝试保存一个共享首选项的主题。当用户点击某个主题的按钮时,我希望该主题被设置为默认并保存,所以当他们重新打开应用程序时,它仍然是那个新主题。

  • 我在共享首选项中保存列表并将其显示在列表视图中没有问题,但我的问题是当我重新启动应用程序并尝试将项目添加到列表视图时 旧的存储项目已删除.有我的代码: } public void getDates(){

  • 对于下面的代码,我正在尝试检索共享的首选项,我认为它保存正确,但当我回到登录屏幕时,所有的数据都消失了。我需要它留在我回到这个屏幕上。所以我在个人资料页面上输入姓名、年龄和id到三个单独的行中。然后按下save按钮,然后按下action Bar上的back转到前面的页面。当我回到个人资料页面时,我的信息应该还在那里,但它没有任何帮助?

  • 非常感谢您的光临,我正在为学校开发一个应用程序,我遇到了另一个问题。该应用程序的主要思想是跟踪您的卡路里,我希望它能节省卡路里,所以当应用程序关闭时,它仍然会记住他们。我已经忙了一段时间了,现在尝试使用SavedPreferences,但我总是出现错误。我希望有人能帮我。 } 我可能做了很多明显的愚蠢的事情,但我真的弄不明白。 多谢!