如何从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),但它要求将方法更改为静态。

+0

使该方法'static' – mihail 2013-02-21 15:33:09

+0

你在'CustomerBean'中重写了谁的'onCreate'方法?你不忘记延长'Activity'课程吗? – 2013-02-21 15:42:59

有两种方法来调用方法在这种情况下

  1. 创建类和呼叫方法

    // Create object 
    CustomerBean customerBean = new CustomerBean(); 
    
    // call the method 
    customerBean.insertObject(<insert object here>); 
    
  2. 的对象制作的方法静态和类名调用它

    // 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修饰符添加到您的方法中。那么你应该可以在类之间访问它。