Android 基础控件bug总结
作者:mmseoamin日期:2024-02-02

1. Switch 控件 setChecked方法触发onCheckedChanged监听器问题

代码 setChecked,会触发监听。

解决方法:

if (!mSwitch.isPressed()) {
    return;
}

参考:

Switch 控件 setChecked方法触发onCheckedChanged监听器问题_qml 为什么switch 没有编辑就触发oncheckedchanged-CSDN博客

2. EditText 内容居右,点击 EditText 编辑,如何让光标居右编辑。

Editable ea = editText.getText();
editText.setSelection(ea.length());

3. 字符串太长 string too large

public class GetJsonDataUtil {
  public String getJson(Context context, String fileName) {
    StringBuilder stringBuilder = new StringBuilder();
    try {
      AssetManager assetManager = context.getAssets();
      BufferedReader bf = new BufferedReader(new InputStreamReader(
          assetManager.open(fileName)));
      String line;
      while ((line = bf.readLine()) != null) {
        stringBuilder.append(line);
      }
    } catch (IOException e) {
      e.printStackTrace();
    }
    return stringBuilder.toString();
  }
}
  String provsData = new GetJsonDataUtil().getJson(activity, "provsData.json");//获取assets目录下的json文件数据
  String distsData = new GetJsonDataUtil().getJson(activity, "distsData.json");//获取assets目录下的json文件数据
  String citysData = new GetJsonDataUtil().getJson(activity, "citysData.json");//获取assets目录下的json文件数据

assets 是与 java 和 res 同目录。

参考:

android studio错误: 常量字符串过长的解决方式-腾讯云开发者社区-腾讯云