小编Aha*_*had的帖子

通过观察ViewModel在RecyclerView中搜索PagedList的LiveData

使用 android Paging 库,可以很容易地从数据库中分块加载数据,并且 ViewModel 提供自动 UI 更新和数据保存。所有这些框架模块帮助我们在 Android 平台上创建一个出色的应用程序。

典型的 Android 应用程序必须显示项目列表并允许用户搜索该列表。这就是我想通过我的应用程序实现的目标。所以我通过阅读很多文档、教程甚至stackoverflow的答案来完成了一个实现。但我不太确定我是否做得正确或者我应该如何做。下面,我展示了使用 ViewModel 和 RecyclerView 实现分页库的方法。

请检查我的实施并纠正我的错误或告诉我应该如何做。我认为有许多像我一样的新 Android 开发人员仍然对如何正确执行此操作感到困惑,因为没有单一来源可以回答您关于此类实现的所有问题。

我只展示我认为重要的东西。我正在使用房间。这是我正在使用的实体。

@Entity(tableName = "event")
public class Event {
    @PrimaryKey(autoGenerate = true)
    public int id;

    public String title;
}
Run Code Online (Sandbox Code Playgroud)

这是事件实体的 DAO。

@Dao
public interface EventDao {
    @Query("SELECT * FROM event WHERE event.title LIKE :searchTerm")
    DataSource.Factory<Integer, Event> getFilteredEvent(String searchTerm);
}
Run Code Online (Sandbox Code Playgroud)

这是ViewModel扩展了AndroidViewModel ,它允许通过提供所有事件或根据搜索文本过滤的事件的LiveData< PagedList< Event>>来读取和搜索。我真的很挣扎,每次当filterEvent发生变化时,我都会创建新的LiveData,这可能是多余的或不好的。

private MutableLiveData<Event> filterEvent = new MutableLiveData<>();
private LiveData<PagedList<Event>> data;

private …
Run Code Online (Sandbox Code Playgroud)

android searchview android-recyclerview android-viewmodel android-paging

8
推荐指数
1
解决办法
2128
查看次数

静态属性访问PHP中的静态属性

在创建应用程序时,我遇到了一个我有静态变量的情况.

让我们说它是:

public static name = "abdul ahad";
Run Code Online (Sandbox Code Playgroud)

在某个地方,我有另一个名为user的静态变量,它访问上面定义的静态变量名.

public static user = self::$name;
Run Code Online (Sandbox Code Playgroud)

注意:这些属性是同一个类的成员.

这样做会产生以下错误.

解析错误:语法错误,意外的'$ XXX'(T_VARIABLE),期望在xx行的C:\ xxxx\xxx\xxx.php中的标识符(T_STRING)或类(T_CLASS)

对于Java,同样的概念也适用,如下所示.

public static int i = 5;
public static int j = Main.i;   

public static void main(String[] args) {

    System.out.println(String.format("Static j was : %d", Main.j));
Run Code Online (Sandbox Code Playgroud)

所以,我想知道在PHP中是否可能以及我在语法上做错了什么.如果不是,那么您是否愿意解释原因?

php java static parsing properties

2
推荐指数
1
解决办法
71
查看次数