首先在这个位置创建一个MainActivity
这是其中代码
import android.content.Context
import android.os.Bundle
import android.os.PersistableBundle
import android.widget.Toast
import io.flutter.embedding.android.FlutterActivity
import io.flutter.plugin.common.MethodChannel
class MainActivity:FlutterActivity(){
override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
super.onCreate(savedInstanceState, persistentState)
val sharedPreferences=getSharedPreferences("context",Context.MODE_PRIVATE)
//这个是sharedPreferences的数据库 MethodChannel(flutterEngine!!.dartExecutor.binaryMessenger,"sp").setMethodCallHandler{call,result->
when(call.method){
"setString"->{//sp中的方法名字
val key=call.argument<String>("key")
val value=call.argument<String>("value")
sharedPreferences.edit().putString(key,value).apply()
//这个是往sharedPreferences存储数据
}
"getString"->{
val key=call.argument<String>("key")
result.success(sharedPreferences.getString(key,""))
//这个是用sharedPreferences获取数据
}
"toast"->{
val toast=call.argument<String>("toast")
Toast.makeText(context,toast,Toast.LENGTH_SHORT).show()
//这个是toast弹窗消息
}
}
}
}
}
下面我们需要再写flutter的代码文件家中再创建一个叫sp.dart的flutter文件
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
var _chalnnel = MethodChannel("sp");//这个为上面mainactivity中创建sharedPreferences的名字
setString(String key, String value) {//这个是添加数据进shaterpreferences
_chalnnel.invokeMethod("setString", {"key": key, "value": value});
}
getString(String key) async {//这个是获取数据进sharedPreferences
return await _chalnnel.invokeMethod("getString", {"key": key});
}
toast(String toast) {//这个是toast输出内容
_chalnnel.invokeMethod("toast", {"toast": toast});
}
rotePush(BuildContext context, Widget child) {//这个为页面跳转
Navigator.push(context, MaterialPageRoute(builder: (context) => child));
}
怎么用
比如这个setString方法可以
val a=await getString("a")//获取a
await setString("a",a);//前面是存储的名字后面是要存储的值
注意用的时候上面方法必须要加async 否则await前缀用不了那样会可能会获取到空的值