2012-08-17 173 views
0

我有以下類構造函數:如何創建這個類的對象?

public class TestAdapter { 

    protected static final String TAG = "DataAdapter"; 

    private final Context mContext; 
    private SQLiteDatabase mDb; 
    private DatabaseHandler mDbHelper; 

// private static SQLiteDatabase mDb2; 
// private static DatabaseHandler mDbHelper2; 


    public TestAdapter(Context context) { 
     this.mContext = context; 
     mDbHelper = new DatabaseHandler(mContext); 
    } 

就在這個班我有一個setFlag()方法,我需要從下面的方法調用 -

@Override 
     protected void onPostExecute(String result) { 
      // tv.setText(result); 
      Log.e("result", result); 
      if (Integer.parseInt(result) == 1) { 
       flagValue = 1; 
       Log.e("my","flag value set"); 
       //TestAdapter t =new TestAdapter(); 
       //setFlag() 



      } 

的註釋部分,我需要調用該方法,但我不知道如何創建「TestAdapter」類的對象。如果我在該類中設置了setFlag()靜態,那麼在該方法中使用的其他實例將不起作用,因爲它們不是靜態的。 F1 F1 F1

編輯:我被告知理解上下文存在一個活動,但這個類中我需要創建該對象不是一個活動..它只是一個java類,它有方法來同步本地數據庫服務器數據庫

+0

在您嘗試創建對象的行處,確切的問題/錯誤是什麼?當構造函數被參數化時,您需要傳遞'context'對象。 – mtk 2012-08-17 10:47:49

+0

可以請你明確問題。 以及onPostExecute方法在哪裏? – Byter 2012-08-17 11:20:45

回答

1

在活動首先先申報中的onCreate context = this;之上Context context = null;

聲明之後。

現在你可以用你的方法,如:

TestAdapter t = new TestAdapter(context); t.setFlag();

1

簡單好友,

在你AsyncTask類的構造你有上下文調用活動的。

一樣,mContext ..

現在把這個背景下,以你的TestAdapter的構造

一樣,

@Override 
    protected void onPostExecute(String result) { 
     // tv.setText(result); 
     Log.e("result", result); 
     if (Integer.parseInt(result) == 1) { 
      flagValue = 1; 
      Log.e("my","flag value set"); 
      TestAdapter t =new TestAdapter(mContext); 
      t.setFlag() 
     } 
+0

如果您在'AsyncTask'中沒有調用Activity的'Context'。然後使用調用活動的名稱作爲上下文,例如' .this' – user370305 2012-08-17 10:51:24

0

TestAdapter adapter = new TestAdapter(YourCurrentActivityName.this)onCreate()方法。 然後致電adapter.setFlag();方法onPostExecute()或者你想要的地方。

0

試試這個。

TestAdapter object = new TestAdapter(CurrentActivty.this); 

以這種方式,您可以創建TestAdapter類的對象。

0

你可以像這樣,如果你說

TestAdapter t =new TestAdapter(getApplicationContext()); 
0

會更容易幫助你什麼樣的錯誤你的IDE或logcat的給你。 按照您的構造函數的要求使用Context進行實例化。

  TestAdapter t =new TestAdapter(ctx); 
      t.setFlag() 

用ctx作爲您的上下文。