我正在制作我的第一个应用程序。 (有很多Google和教程)。
我用下表制作了一个会议室数据库。
现在,我想用微调“ 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,并且具有与此类似的一些代码来初始化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);
}