java - 用房间数据库填充微调器

标签 java android spinner android-room

我正在制作我的第一个应用程序。 (有很多谷歌和教程)。

我用下表创建了一个房间数据库。

enter image description here

现在我想用“team_name”列的字符串填充 Spinner。

在微调器选择中,“team_url”应放入变量中。

不知道如何。

感谢您的帮助。

您好!

更新:

    Spinner league = findViewById(R.id.league);
    tableDAO = TeamDatabase.getInstance(this).getTableDAO();

    List<Team> allTable = tableDAO.getTable();

    ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, new ArrayList<String>());
    spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    league.setAdapter(spinnerAdapter);

    spinnerAdapter.addAll(allTable);
    spinnerAdapter.notifyDataSetChanged();

最佳答案

我假设您正在使用 Java 并且有一些与此类似的代码来初始化 Spinner

Spinner spinner = (Spinner)findViewById(R.id.mySpinner);
ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, new ArrayList<>());  
spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(spinnerAdapter);

您需要做的是使用 Room 从数据库中获取数据并将它们添加到适配器

spinnerAdapter.addAll(yourList);
spinnerAdapter.notifyDataSetChanged();

一旦用户点击任何项目,您可以使用回调函数获取团队名称并使用 Room 获取相应的 team_url。

你房间的道可能是这样的

@Dao
public interface TeamDao {
    @Query("SELECT * FROM team")
    List<Team> getAll();

    @Query("SELECT team_name FROM team")
    List<String> getAllTeamName();

    @Query("SELECT team_url FROM team WHERE team_name = :name")
    public abstract List<String> findURLByName(String name);

}

关于java - 用房间数据库填充微调器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61875405/

相关文章:

java - 在 Android 应用程序中使用 Google map 路线

java - 如何在 Eclipse 中调试 Maven 项目?

java - 如何在不关闭线程的情况下中断被某些套接字 IO 操作阻塞的线程

Android Invalidate() 只有单一 View

java - 如何在出现 'cannot resolve put symbol' 错误时将键和值添加到 Hashmap

android - 我们可以像配对经典蓝牙设备一样配对 BLE 设备吗?

javascript - 如何将 FuelUX Spinner 连接到输入元件?

java - 如何在 Java 中使用按钮打开特定文件夹

javascript - 完全 Javascript Ajax 旋转器?

android - 微调器选择的项目在第一次运行时显示,注销并再次登录后它不显示选择的项目