Android 最強工具類的使用 .blankj:utilcode
阿新 • • 發佈:2019-02-16
一, 引入
這幾天專案要做sharedprefences , 原生的寫的很麻煩 , 於是用 utilcode , 來儲存, 坑爹的是找到了 , 都不會用
compile 'com.blankj:utilcode:1.13.5'
二,初試 直接報錯
spUtils = SPUtils.getInstance(SPUTILS);Caused by: java.lang.NullPointerException: u should init first
at com.blankj.utilcode.util.Utils.getApp(Utils.java:98)
at com.blankj.utilcode.util.SPUtils.<init>(SPUtils.java:53)
at com.blankj.utilcode.util.SPUtils.getInstance(SPUtils.java:46)
at com.shinelon.sputils_boke.MainActivity.onCreate(MainActivity.java:30)
at android.app.Activity.performCreate(Activity.java:6237)
一看知道了是空指標的問題
三.分錯
分析錯誤可以得出是要進行例項化的 來的
Utils.init(this); spUtils = SPUtils.getInstance(SPUTILS);
package com.shinelon.sputils_boke; import android.app.Application; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.EditText; importandroid.widget.TextView; import com.blankj.utilcode.util.SPUtils; import com.blankj.utilcode.util.Utils; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; public class MainActivity extends AppCompatActivity { @BindView(R.id.et_save) EditText etSave; @BindView(R.id.tv_show) TextView tvShow; private static final String SPUTILS = "sputils"; private SPUtils spUtils; private Application app; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); Utils.init(this); spUtils = SPUtils.getInstance(SPUTILS); } @OnClick({R.id.bt_save, R.id.bt_read}) public void onViewClicked(View view) { switch (view.getId()) { case R.id.bt_save: spUtils.put("save",etSave.getText().toString()); break; case R.id.bt_read: tvShow.setText(spUtils.getString("save")); break; } } }