【发布时间】:2014-01-18 13:48:00
【问题描述】:
我有一个包含用于控制我的数据库的所有功能的活动,并且我希望所有其他活动在与数据库交互时使用这些功能。下面是我的问题的一个例子。
时钟脚本:
public class Clock extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_clock);
Data.createTable(); //<<<
}
//...
}
数据脚本:
public class Data extends Activity
{
SQLiteDatabase mydb;
private static String DBNAME = "SHIFTS.db";
private static String TABLE = "MY_SHIFTS";
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_data);
}
public void createTable() //<<<
{
try
{
mydb = openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE,null);
mydb.execSQL("CREATE TABLE IF NOT EXISTS "+ TABLE +" (ID INTEGER PRIMARY KEY, STARTDATE TEXT, ENDDATE TEXT, LENGTH INTEGER, TYPE INTEGER);");
mydb.close();
}
catch(Exception e)
{
Toast.makeText(getApplicationContext(), "Error in creating table", Toast.LENGTH_LONG).show();
}
}
// ... lots more functions
}
错误信息:
无法对非静态方法 createTable() 进行静态引用 来自数据类型。
当我尝试将方法设为静态时,只会导致更多问题。
如果我尝试 Data data = new Data();数据.createTable();我得到一个 NullPointerException。
这里有什么问题?
【问题讨论】:
-
将数据类声明为静态
-
查看link
标签: java android function android-activity static