用房间数据库填充微调器
Fill Spinner with Room Database
我正在制作我的第一个应用程序。 (有很多 google 和教程)。
我用以下 table 创建了一个房间数据库。
现在我想用 "team_name" 列的字符串填充 Spinner。
在 Spinner Selection 中,"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);
}
我正在制作我的第一个应用程序。 (有很多 google 和教程)。
我用以下 table 创建了一个房间数据库。
现在我想用 "team_name" 列的字符串填充 Spinner。
在 Spinner Selection 中,"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);
}