如何从Activity中调用外部类的方法?
问题描述:
首先让我们知道我是Android新手。如何从Activity中调用外部类的方法?
尝试创建多个类来处理数据库表操作。创建一个数据库帮手如下:
public class WSDatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "wsemp";
private static final int DATABASE_VERSION = 5;
public WSDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase database) {
.............
}
@Override
public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {
................
}
}
创建一个类来处理数据库表操作:
public class CustomerBean {
private WSDatabaseHelper database;
@Override
public boolean onCreate() {
database = new WSDatabaseHelper(getContext());
return false;
}
public boolean insertObject(valObj) {
SQLiteDatabase db = database.getWritableDatabase();
db.insert(.......);
}
}
但现在我不知道我怎样才能从我的活动或会议文件调用此insertObject功能。我尝试了CustomerBean.isnertObject(obj),但它要求将方法更改为静态。
答
有两种方法来调用方法在这种情况下
-
创建类和呼叫方法
// Create object CustomerBean customerBean = new CustomerBean(); // call the method customerBean.insertObject(<insert object here>);
-
的对象制作的方法静态和类名调用它
// In CustomerBean class public static boolean insertObject(valObj) { SQLiteDatabase db = database.getWritableDatabase(); db.insert(.......); } //In WSDatabaseHelper class CustomerBean.insertObject(<object name here>);
更多的东西在这里纠正的是,在CustomerBean类,你都写
@Override
public boolean onCreate() {
database = new WSDatabaseHelper(getContext());
return false;
}
这是不正确的。的onCreate()Activity类的Android的方法和 你可以把@覆盖注释此方法仅当您的类的扩展活动类
希望这将帮助你
答
将static
修饰符添加到您的方法中。那么你应该可以在类之间访问它。
使该方法'static' – mihail 2013-02-21 15:33:09
你在'CustomerBean'中重写了谁的'onCreate'方法?你不忘记延长'Activity'课程吗? – 2013-02-21 15:42:59