Android的学习语法和iOS有很多类似的地方,通过记录日常开发Android的的经验,总结一下常用语法实现的经验,仅以此记录,开发的过程中碰到的时间开发问题。
1.替换后台返回字段
public class StoreEntity implements Serializable {
// 替换后台返回字段名称
@SerializedName("STORE_NAME")
public String storeName; // 店名
@SerializedName("STORE_CODE")
public String storeCode; // 店号
}
使用
注解
@SerializedName
包裹原始字段,然后定义一个新字段替换即可.
2.遍历一个实体类,得到一个新的实体类
// 设置数据
// 遍历实体类【Entity】数组
stores.clear();
for (StoreEntity storeEntity : data.data) {
// 核心代码
stores.add(new TextEntity(storeEntity.storeName));
}
storeAdapter.setList(stores);
其中
StoreEntity
为原始实体类,TextEntity
为新的实体类
3.字符串数组的分隔成一个新的数组
stores.clear();
if (!TextUtils.isEmpty(recordEntity.storeNames)) {
Log.d("测试OK---",recordEntity.storeNames);
// 字符串数组分隔核心代码
String[] tempStores = recordEntity.storeNames.split(",");
for (int i = 0; i<tempStores.length; i++) {
stores.add(new TextEntity(tempStores[i]));
}
}
4.Android
中实体类里面操作setter/getter方法
当你需要在 Android 中设置 getter 和 setter 方法时,你可以创建一个具有私有字段和公共 getter/setter 方法的实体类。以下是一个示例:
public class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
在上面的示例中,Person
类具有私有字段 name
和 age
,以及公共的 getter 和 setter 方法用于访问和修改这些字段。
你可以使用以下代码示例来设置和获取 Person
对象的属性值:
// 创建 Person 对象
Person person = new Person();
// 设置属性值
person.setName("John");
person.setAge(25);
// 获取属性值
String name = person.getName();
int age = person.getAge();
通过调用 setName()
和 setAge()
方法,你可以设置 Person
对象的属性值。然后,通过调用 getName()
和 getAge()
方法,你可以获取相应的属性值。
这样,通过使用 getter 和 setter 方法,你可以在需要时对属性进行验证、数据转换或其他处理,并且可以更好地控制属性的访问和修改。
理解了就很简单,和OC中的模型有点类似,
1.修饰词需要使用
privite
2.
setter
中需要this
3.
getter
中改变字段的值,,对外其实getter
获取值、setter
设置值,可以看第二张图。
5.关键字instanceof
if(result instanceof Result.Success){
}
instanceof 是Java 的一个二元操作符,类似于==,>,< 等操作符。 instanceof 是Java 的保留关键字。 它的作用是测试
它左边的对象是否是它右边的类的实例
,返回boolean
的数据类型。
6.关键字protected
在 Java 中,protected
是一个访问修饰符,用于限制类的成员(字段、方法)的访问范围。具体来说,使用 protected
修饰的成员可以被以下几种访问:
- 同包下的类:在同一个包内的其他类可以访问
protected
成员。 - 子类:无论子类在同一个包内还是不同包内,都可以访问父类中使用
protected
修饰的成员。protected
修饰符对比其他访问修饰符的区别如下:
- public:任何类都可以访问
public
成员。 - protected:只有同一包内的类和子类可以访问
protected
成员。 - default (package-private):如果没有使用任何修饰符(即不写任何修饰符),则成员具有默认访问权限,即同一个包内的类可以访问。
- private:只有同一个类内部可以访问
private
成员,其他类无法访问。 在使用protected
关键字时,需要注意以下几点: protected
成员对于包外的类来说,无法直接访问。只有在子类中通过继承可以访问。- 在访问
protected
成员时,不需要通过实例化对象,可以直接访问父类的protected
成员(当然,如果在不同包下,必须是子类才能直接访问)。 protected
修饰符用于实现类之间的继承和扩展关系,提供了一定程度的封装性和灵活性。
在 Android 开发中,protected
关键字常用于以下情况:
- 在
Activity
或者Fragment
的子类中,使用protected
修饰方法,以便子类可以重写这些方法来定制特定的行为。 - 在自定义控件或者工具类中,使用
protected
修饰一些字段或者方法,以便继承这些类的子类可以访问和修改这些字段或者方法。 总结来说,protected
关键字在 Java 中是用于限制访问权限,主要用于继承和扩展类的关系,使得子类可以访问父类的一部分实现,并在此基础上进行扩展。
7.关键字abstract
在 Android 开发中,abstract
是一个关键字,用于定义抽象类(abstract class)或抽象方法(abstract method)。这些抽象类和方法具有以下特点和用法:
抽象类(abstract class)
抽象类用 abstract
关键字修饰,它本身不能被实例化,主要用于定义接口和共享代码的结构,子类必须实现其抽象方法。
示例:
// 定义一个抽象类 Animal
public abstract class Animal {
// 抽象方法,子类必须实现
public abstract void makeSound();
// 普通方法,子类可以选择性覆盖
public void eat() {
System.out.println("Animal is eating");
}
}
在上面的例子中,Animal
类是抽象的,因为它包含了一个抽象方法 makeSound()
。任何继承自 Animal
的子类都必须实现 makeSound()
方法,否则会导致编译错误。
抽象方法(abstract method)
抽象方法只有声明,没有实现,它用 abstract
关键字标记,且必须出现在抽象类中。子类继承抽象类后,必须实现其所有的抽象方法才能正常编译。
示例:
// 继承抽象类 Animal,并实现 makeSound 方法
public class Dog extends Animal {
// 实现抽象方法
@Override
public void makeSound() {
System.out.println("Bark bark");
}
}
在这个示例中,Dog
类继承了 Animal
抽象类,并实现了 makeSound()
方法,这样 Dog
类就可以被实例化和使用了。
使用抽象类和抽象方法的优点:
- 代码重用和结构定义:抽象类可以定义通用的行为和结构,减少重复代码。
- 强制实现规范:抽象方法强制子类实现特定的方法,确保子类拥有共同的接口。
- 多态性支持:抽象类可以被多个子类继承,提供多态性的支持。
在 Android 开发中,抽象类常用于定义基础组件或者共享逻辑,例如 Fragment
、AsyncTask
等,这些类通过抽象方法或者默认实现提供了框架的基础,同时允许开发者根据具体需求进行扩展和定制。
8.RecycleView
更新数据过程中,使用SmartRefreshLayout
加载更多出现数据列表数据不更新的情况
// 刷新列表
// adapter.setNewInstance(datas);
adapter.setList(datas);
// adapter.notifyDataSetChanged();
上述图片中的写法也可以在加载更多的时候刷新,单独使用setNewInstance
则不能,但是,其方法内部包含了notifyDataSetChanged()
,很奇怪的一个问题,最后接受了文档中的建议,如非必要
,一般直接使用setList()
就可以。参考