Android 无法解决活动中的变量错误
我试图检查数据库中是否引入了几个值。我定义了一个SQLHelper类和活动。我正在尝试从活动访问SQLHelper类中的变量,但无法访问,因为出现以下错误: 无法解析longitud 无法解析的变量有:nombre、longitud、latitud 守则: SQLOpenHelper:Android 无法解决活动中的变量错误,android,Android,我试图检查数据库中是否引入了几个值。我定义了一个SQLHelper类和活动。我正在尝试从活动访问SQLHelper类中的变量,但无法访问,因为出现以下错误: 无法解析longitud 无法解析的变量有:nombre、longitud、latitud 守则: SQLOpenHelper: package com.app.mapa; import android.content.Context; import android.database.sqlite.SQLiteDatabase; impo
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;
}
我如何访问它们
谢谢。假设代码中的“boh”和“bdoh”是类型为
bdoh
的对象
无法解析您提到的变量,因为您的Bdoh
class没有具有该名称的成员变量。因此,以下措施无法奏效:
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概念,所以我只能推荐阅读有关面向对象编程的教程。@JustinJasmann请思考。如果存在变量未解析错误,OP应该如何获取logcat?很抱歉,我假设未解析变量位于
bdcons
字符串变量内,引用数据库列,这将在运行时发生。@JustinJasmann运行时永远不会发生未解决的变量错误。@Simon不包含该字段的数据库上的select
语句如何?@JustinJasmann则会出现“column not exist”异常。正如我所说的,不可能在运行时获取未解析的变量,因为这是一个编译器错误。您将无法使用未解析的变量进行生成。是。但我想做的是访问名为nombre、longitud和latitud的数据库字段,我不知道怎么做。如果我定义了它们,如何将它们绑定到数据库字段?错误已修复。我使用getContentResolver和字符串进行查询。