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。

快速谷歌搜索将让你立即开始运行。

+0

感谢您发布。我应该怎么做在表代码,以重新加载基于微调btw? – Lynx 2014-08-28 08:07:33

+0

编辑回答评论 – WIllJBD 2014-08-28 15:54:41