2013-02-21 103 views
0

首先讓我們知道我是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

回答

2

有兩種方法來調用方法在這種情況下

  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的方法和 你可以把@覆蓋註釋此方法僅當您的類的擴展活動

希望這將幫助你

0

static修飾符添加到您的方法中。那麼你應該可以在類之間訪問它。

相關問題