使用会议室数据库填充微调器

问题描述 投票:0回答:1

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

我用下表制作了一个会议室数据库。

enter image description here

现在,我想用微调“ team_name”的字符串填充微调框。

选择微调框时,“ 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 android spinner android-room
1个回答
0
投票

我假设您正在使用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);

}

© www.soinside.com 2019 - 2024. All rights reserved.