我正在制作我的第一个应用程序。 (有很多谷歌和教程)。
我用下表创建了一个房间数据库。
现在我想用“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/