Android与kotlin报错3

前言

记录我遇到的kotlin与android的问题
第一篇Android与kotlin报错
第二篇Android与kotlin报错2

一百零一

错误信息

Textview显示STRING_TOO_LARGE

解决办法

减少TextView的文本内容
TextView最多能够显示10822个字符
在这里插入图片描述

总结

Textview中\n\n是空一行,\n是换行
文本最好用"文本内容"来表示,添加冒号表示文本

一百零二

错误信息

使用TextInputLayout时会出现两条下横线的情况
在这里插入图片描述

解决办法

更改主题的样式为Theme.AppCompat.Light.NoActionBar或Theme.AppCompat.DayNight
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一百零三

报错信息

ConstraintLayout嵌套SwipeRefreshLayout嵌套ScrollView嵌套Recyclerview时,使用宫格布局(StaggeredGridLayoutManager),不能正常显示
在这里插入图片描述
在这里插入图片描述

解决办法

将布局的嵌套的ScrollView去掉,recyclerview自带滚动视图

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/RecyclerViewBackgroundColor"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <!-- 注意SwipeRefreshLayout节点必须使用完整路径 -->
    <androidx.swiperefreshlayout.widget.SwipeRefreshLayout
        android:id="@+id/srl_simple"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <!-- SwipeRefreshLayout的下级必须是可滚动的视图 -->
     

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/RecyclerView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    </androidx.recyclerview.widget.RecyclerView>

       
    </androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

一百零四

报错信息

java.lang.ClassCastException: cn.leancloud.LCObject cannot be cast to com.example.secondhandtest.Goods
at com.example.secondhandtest.GoodsAdapter.onBindViewHolder(GoodsAdapter.kt:37)
at com.example.secondhandtest.GoodsAdapter.onBindViewHolder(GoodsAdapter.kt:19)

解决办法

严格按照leancloud的文档进行查询和添加,注意泛型一定是<LCObject>或者<LCUser>
在这里插入图片描述
这样构建对象
代码如下

      ReleaseGoodsTitle=binding.etReleaseGoodsname.text.toString()
            ReleaseGoodsMessage=binding.etReleaseGoodsmessage.text.toString()
            ReleaseGoodsMoney= Integer.valueOf(binding.etReleaseGoodsmoney.text.toString())
            val currentUser:LCUser= LCUser.getCurrentUser()
            val goods= Goods()
            val goodsAdd:LCObject= LCObject("Goods")
            goodsAdd.put("GoodsTitle",ReleaseGoodsTitle)
            goodsAdd.put("GoodsMessage",ReleaseGoodsMessage)
            goodsAdd.put("GoodsMoney",ReleaseGoodsMoney)
            goodsAdd.put("GoodsUser",currentUser)

————————————————————————————————————————————
在这里插入图片描述
这样获取数据
代码如下

 val goods: LCObject? =goodsList?.get(position)
        Log.e(TAG, "GoodsAdapter获取对应的数据", )
holder.GoodsName.text=goods?.getString("GoodsTitle")
        Log.e(TAG, "GoodsAdapter列表赋值GoodsName", )
        holder.GoodsMonehy.text= goods?.getString("GoodMoney")
        holder.GoodsMessage.text=goods?.getString("GoodsMessage")
        val user= LCUser.getCurrentUser()
        Log.e(TAG, "GoodsAdapter获取当前的用户", )
        holder.GoodsUser.text=user.username

取数据也能通过objectId进行获取

一百零五

报错信息

leancloud注册失败,提示cn.leancloud.LCException: Username is missing or empty.

解决办法

注册的时候按照文档的要求来
在这里插入图片描述

错误示范
不要通过自己的实体类进行注册
val user= User(et_username.text.toString(),et_password.text.toString(),0)
即便是自己的user实体类继承了LCUser

data class User(@SerializedName("UserName")
var UserName:String,
           @SerializedName("UserPassWord")
           var UserPassWord:String,
           @SerializedName("UserMoney")
           var UserMoney:Int
           ):LCUser()

正确代码

 val user:LCUser= LCUser()
 user.username = et_username.text.toString()
            user.setPassword(et_password.text.toString())
//            user.username = et_username.text.toString()
//            user.setPassword(et_password.text.toString())
    user.signUpInBackground().subscribe(object:Observer<LCUser>{
        override fun onSubscribe(d: Disposable) {

        }

        override fun onNext(t: LCUser) {
            Toast.makeText(this@RegisterUserActivity, "注册成功", Toast.LENGTH_SHORT).show()
        }

        override fun onError(e: Throwable) {
            Toast.makeText(this@RegisterUserActivity, "注册失败", Toast.LENGTH_SHORT).show()
            Log.e(TAG, "注册失败"+e)
        }

        override fun onComplete() {

        }

    })

一百零六

报错信息

支付宝沙盒传入参数类型报错
传入参数是int类型,传入数据是string类型,将string转int类型,报错
java.lang.NumberFormatException: For input string: “250.0”

解决办法

更改传入参数是double类型,传入数据String转double类型

public static Map<String, String> buildOrderParamMap(String app_id, boolean rsa2,double PayMoney,String PayMessage) {}

在这里插入图片描述

double str  = Double.parseDouble(ExploreDetailedGoodsMoney.getText().toString());
Map<String, String> params = OrderInfoUtil2_0.buildOrderParamMap(APPID,rsa2,str,ExploreDetailedGoodsMessage.getText().toString());

在这里插入图片描述

一百零七

报错信息

unable to connect to 127.0.0.1:5555:5555

解决办法

确定雷电模拟器有开启开发者模式和启用usb调试,就将雷电模拟器和AndroidStudio彻底关闭,然后再开启,就自动连接上去了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值