Android微调加载多列(加入)Sqlite数据库到表
我正在学习如何创建一个微调从SQLite加载下拉菜单。我有一个包含一个微调和一个表的UI。如果用户单击微调器,表格的内容将根据数据库根据微调器上选定的ID加载。如果没有选择名称,它将加载表中的所有内容..但是我找不到如何根据在微调器上选择的ID /名称来重新加载表的方式。任何人都可以指导我?Android微调加载多列(加入)Sqlite数据库到表
表本身是一个连接表,该表具有以下结构:
表A:ID_Person |名称|年龄
表B:ID_Account | ID_Person |金额
Spinner显示人名。同时该表格将显示以下结构:
名称|年龄|量
我对微调代码:
public List<String> getAllDealers()
{
List<String> contentdealer = new ArrayList<String>();
// Select All Query
String selectQuery = "SELECT * FROM " +Dealer_TABLE;
cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
contentdealer.add(cursor.getString(1));
} while (cursor.moveToNext());
}
// closing connection
return contentdealer;
}
下面是我建立我的表的循环:
Cursor c = in.getViewInfo(); //method in db consists of query that i want table show
int rows = c.getCount();
int cols = c.getColumnCount();
c.moveToFirst();
// outer for loop
for (int i = 0; i < rows; i++)
{
//looping all rows based .getCount()
//looping all columns
for (int j = 0; j < cols; j++)
{
}
}
in.close();
看到类似的,但不准确这里同样的答案
https://stackoverflow.com/a/11920785/1116836
我是lieve你想要的是
spinner.setOnItemSelectedListener(new OnItemSelectedListener()
{
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id)
{
Toast.makeText(context, "item selected, load some sql", Toast.LENGTH_LONG).show();
// position should match the index of the array in the items list you used for which item is selected, or here you could do
String selected = spinner.getSelectedItem().toString();
// or
String anotherway = spinner.getItemAtPosition(position).toString();
if (selected.equals("what ever the option was")) {
}
}
@Override
public void onNothingSelected(AdapterView<?> parentView)
{
Toast.makeText(context, "nothing selected, load some sql", Toast.LENGTH_LONG).show();
}
});
可能能够选择什么,你将不得不插入无文本视图,并允许被选中。 onNothinSelected更多用于修改列表或当前选定的项目变为未选中状态,例如,当它处于选择之间时,它可能会调用此方法。
当选择从此 视图中消失时要调用的回调方法。例如,当触摸激活 或适配器变空时,选择可以消失。
所以基本上,当选择一个新项目时,调用一个方法加载一些sql行,清除你的表,然后显示新的数据。
编辑:征求意见
你要做的是事件驱动功能。当有人在微调器中选择一个新选项时,这是一个事件。正如我上面所显示的那样,您通过执行OnItemSelectedListener()
来收听此事件。
一个你实现这个,你可以找出什么项目被选中,只要它发生。一旦选择了新项目,您需要确定该项目意味着您应该做什么。
一旦你已经想通了,运行你的SQL语句并查询你的数据库,加载数据,将其设置在适配器中,然后用户将看到它。
如果您使用的是应该是的ListView,那么您需要将适配器清除到ListView,然后添加新的项目。
您需要研究ArrayAdapter,BaseAdapter,ViewHolder模式和ListView's。
快速谷歌搜索将让你立即开始运行。
感谢您发布。我应该怎么做在表代码,以重新加载基于微调btw? – Lynx 2014-08-28 08:07:33
编辑回答评论 – WIllJBD 2014-08-28 15:54:41