我在android中构建一个数据库类,它从getIntent()。getStringExtra(name)函数收集String非静态数据。 这是我把一个简单的字符串变量(非静态)的值。Android非静态字符串静态字符串错误
当我尝试使用它的静态字符串里,我得到一个错误 - “不能作静态引用非静态字段”。
我该如何解决这个问题?这里是我的代码:
package ent.com;
import android.app.Activity;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
public class SetSql extends Activity{
String saveExtra = getIntent().getStringExtra("save");
public static final String KEY_ROWID = "_id";
public static final String KEY_SAVE = "save_name";
public static final String KEY_STADUIM = "stadium_size";
public static final String KEY_FINANCE = "total_money";
public static final String KEY_PLAYERS = "players";
private static String DATABASE_NAME = "save" + saveExtra;
private static final String DATABASE_TABLE = "save_data";
private static final int DATABASE_VERSION = 1;
private static class DbHelper extends SQLiteOpenHelper{
public DbHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
}
}
感谢所有帮助:)
谢谢,它的工作 – arielschon12 2012-04-12 10:06:23
能否请你解释声明saveExtra的原因onCreate内部和外部的变量??我们不能在onCreate方法中使用saveExtra的同一个实例(已经声明为外部) – AndoAiron 2012-04-12 10:40:27
这是因为一个类的静态变量将被初始化之前的任何其他变量所以初始化静态变量和其他非静态变量是不可能的,因为非静态变量只有在初始化静态变量后才会被初始化。请参阅http://www.javatutorialhub.com/wiki/All_about_%22static %22 – user936414 2012-04-12 11:06:42