变量无法解析活动中的错误

时间:2013-11-16 21:31:11

标签: android

我试图检查引入的几个值是否在数据库中。我定义了一个SQLHelper类和活动。我尝试从活动中访问SQLHelper类中的那些变量,但我不能,因为存在以下错误:

纵向无法解决

无法解决的变量是:nombre,longitudinal,latitud。

代码:

SQLOpenHelper:

package com.app.mapa;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;


public class Bdoh extends SQLiteOpenHelper
{
SQLiteOpenHelper sbd;
static String T_NOMBRE="lugares"; //para el content provider
private static final String NOMBRE_BD = "Sitios";
private static final int VER_BD = 1;
private static final String bdcons = "CREATE TABLE " + T_NOMBRE + 
"(_id INTEGER PRIMARY KEY AUTOINCREMENT, nombre TEXT, descripcion TEXT, latitud  
    DOUBLE, " + "longitud DOUBLE, foto TEXT)";

    public Bdoh(Context context) 
{
    super(context, NOMBRE_BD, null, VER_BD);
    SQLiteDatabase  
            db=context.openOrCreateDatabase(NOMBRE_BD,Context.MODE_PRIVATE,null); 

}

@Override
public void onCreate(SQLiteDatabase db) 
{
    db.execSQL(bdcons);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
{
      db.execSQL("DROP TABLE IF EXISTS lugares");
      db.execSQL(bdcons);
    }
}

活动:

public boolean iguales()
{
    boolean ig = false;
    Uri urititl = MCProvider.CP_URI;
    Cursor c = getContentResolver().query(urititl,null,null,null,null);
    c.moveToFirst();
    if(c.moveToFirst())
     {
        if((titlugar.equals(c.getString(c.getColumnIndex(boh.nombre))))  
                      &&  (lat.equals(c.getDouble(c.getColumnIndex(boh.latitud)))) && 
                      (lgt.equals(c.getDouble(bdoh.longitud)))) 
        ig = true;
        else ig = false;
     }

    return ig;
}

我如何访问它们?

感谢。

1 个答案:

答案 0 :(得分:1)

假设代码中的'boh'和'bdoh'是Bdoh类型的对象。

您提到的变量无法解析,因为您的Bdoh没有具有该名称的成员变量。所以以下内容不起作用:

if((titlugar.equals(c.getString(c.getColumnIndex(boh.nombre))))  // boh.nombre does not exist

您需要为Bdoh课程定义这些成员变量,然后才能使用它们。

例如:

public class Bdoh extends SQLiteOpenHelper {

    public String nombre;
    public String latitud;
    // and so on...
}

还请尝试正确格式化您的代码和问题。

另请注意,我认为你在这里“练习”的风格非常糟糕,应该通过getter和setter方法完成,或者通常以完全不同的方式完成。由于我不想要完整的OOP概念,我只能推荐阅读有关面向对象编程的教程。