【问题标题】:How to query my sqlite database with a variable如何使用变量查询我的 sqlite 数据库
【发布时间】:2014-01-05 20:33:40
【问题描述】:

我想在文本视图中显示我选择的月份。为此,我有一个微调器,当我在微调器中选择一个月时,它应该会找到我在这个特定月份拥有的所有数据。 我不确定如何使用变量过滤查询,或者如何将变量从我的 Start.java 类传递给我的 KilometerSQL.java 类。

由于我没有使用意图转到 Kilometer.java 类,所以我不知道如何传递变量。

这是我的 Start.java 类

@Override
public void onItemSelected(AdapterView<?> parent, View arg1, int arg2,
        long arg3) {
    // TODO Auto-generated method stub
    String month = parent.getSelectedItem().toString(); //This is my month variable

    KilometerSQL spinner = new KilometerSQL(this);
    spinner.open();

    String dataSpinner = KilometerSQL.spinnerData();
    spinner.close();

    logbog.setText(dataSpinner);

}

这是我的 KilometerSQL.java 类

public static String spinnerData() {
    // TODO Auto-generated method stub
    String [] columns = new String []{ KEY_DAY, KEY_MONTH, KEY_YEAR, KEY_KILOMETER, KEY_LOCATIONS};
    Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_MONTH, null, null, null, null);
    String result = "";

    int iDay = c.getColumnIndex(KEY_DAY);
    int iMonth = c.getColumnIndex(KEY_MONTH);
    int iYear = c.getColumnIndex(KEY_YEAR);
    int iKilometer = c.getColumnIndex(KEY_KILOMETER);
    int iLocations = c.getColumnIndex(KEY_LOCATIONS);

    for (c.moveToFirst();!c.isAfterLast();c.moveToNext()){
        result = result + c.getString(iDay) + "-" + c.getString(iMonth) + "-" + c.getString(iYear) + " " + c.getString(iKilometer) + " " + c.getString(iLocations) + "\n";
    }

    return result;
}

我没有任何运气使用其他用户提供的与我类似的答案。

感谢所有帮助。

【问题讨论】:

    标签: java android sqlite filter


    【解决方案1】:

    在您的 Start.java 类中:

    Intent i = new Intent(this, KilometerSQL.class);
    i.putExtra("KEY",YourData);
    

    在KilometerSQL.java 类中

    Bundle extras = getIntent().getExtras();
    if(extras !=null) {
        String value = extras.getString("KEY");
    }
    

    //Declare ur Textview here and set text to value

    编辑 您是否尝试过以上方法,或者您也可以在 start 类中尝试 spinnerData(dataSpinner) 并在 killometerSql 类中更改 String spinnerData(String dataSpinner)

    开始上课

    public void onItemSelected(AdapterView<?> parent, View arg1, int arg2,
            long arg3) {
        // TODO Auto-generated method stub
        String month = parent.getSelectedItem().toString(); //This is my month variable
    
        KilometerSQL spinner = new KilometerSQL(this);
        spinner.open();
    
        String dataSpinner = KilometerSQL.spinnerData();//you said u want to pass from start to killometer ..Whats this line doing though
        spinner.close();
    
        logbog.setText(dataSpinner);
        spinnerData(month);
    
    
    }
    

    公里类

     public static String spinnerData(String KEY_MONTH) {
            // TODO Auto-generated method stub
            String [] columns = new String []{ KEY_DAY, KEY_MONTH, KEY_YEAR, KEY_KILOMETER, KEY_LOCATIONS};
            Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_MONTH, null, null, null, null);
            String result = "";
    
            int iDay = c.getColumnIndex(KEY_DAY);
            int iMonth = c.getColumnIndex(KEY_MONTH);
            int iYear = c.getColumnIndex(KEY_YEAR);
            int iKilometer = c.getColumnIndex(KEY_KILOMETER);
            int iLocations = c.getColumnIndex(KEY_LOCATIONS);
    
            for (c.moveToFirst();!c.isAfterLast();c.moveToNext()){
                result = result + c.getString(iDay) + "-" + c.getString(iMonth) + "-" + c.getString(iYear) + " " + c.getString(iKilometer) + " " + c.getString(iLocations) + "\n";
            }
    
            return result;
        }
    

    【讨论】:

    • 当 KilometerSQL 只包含我的数据库时,我可以使用它吗?我的意思是我没有使用其他 KilometerSQL 类的意图
    • String dataSpinner = KilometerSQL.spinnerData();//你说你想从开始传递到杀戮计..这条线在做什么
    • 可以肯定的是,我的公里 SQL 不是一项活动。因此我想知道我是否可以使用意图?我还没有尝试过意图的东西,只是想知道。感谢您的宝贵时间。
    • 哦,好吧,如果它适合您,请将其标记为答案。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多