android flutter和kotlin混合开发关于sharedPreferences和toast

首先在这个位置创建一个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前缀用不了那样会可能会获取到空的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值