Listview和DialogFragment中的查询(查询很好!!)

时间:2015-03-28 05:58:25

标签: android sqlite listview dialogfragment

大家好我有一个很大的问题,在无法重新...这很简单,你有一个ListView,当你点击ListView的一个项目,我得到该项目的“Rubro”,它很好......问题是我有一个方法,我查询comapre这个Rubro并得到一个Long att形式的表,但是,查询不工作!但我知道这个查询很好,因为我证明它对于SQLite的DB Brwoser来说是真的!所以这里是我调用方法的代码:

public void onClick(DialogInterface dialog, int id) {

    TextView selectR = (TextView) view.findViewById(R.id.Rubro);
    TextView selectV = (TextView) view.findViewById(R.id.Valor);
    Long ac = db.Buscar_Rubro(selectR.getText().toString()); //THIS IS THE METHOD!
    EditText r = (EditText) dialogV.findViewById(R.id.Mod);
    Long Sum = Long.parseLong(r.getText().toString());
    db.ModRubros(Long.parseLong(selectV.getText().toString()),ac,Sum);
    Cursor cT = db.ListarRubros();//RefreshRubros(cT, from, to);
}  

这是方法:

public long Buscar_Rubro(String Rubro){

   SQLiteDatabase DB = database.getReadableDatabase();

    String Query ="SELECT " + Database.ValorActrual   + " FROM "+ Database.Taba_Rubros + " WHERE " + Database.Rubro + " LIKE '"+ Rubro +"'" ;
    Cursor c = DB.rawQuery(Query,null);

      Long ac = c.getLong(1);
    return ac;
}

请帮帮我!我整天都输了,纠正了这个!

PD:这是我得到的错误,但它是obvios becuae查询不起作用!

  

android.database.CursorIndexOutOfBoundsException:请求索引-1,大小为1

1 个答案:

答案 0 :(得分:1)

你应该这样做

    String Query ="SELECT " + Database.ValorActrual   + " FROM "+ Database.Taba_Rubros + " WHERE " + Database.Rubro + " LIKE '"+ Rubro +"'" ;
    Cursor c = DB.rawQuery(Query,null);

   if (c != null && c.moveToFirst()) {
     Long ac = c.getLong(0);
   }