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 类,它具有将本地数据库与服务器数据库同步的方法。

4

6 回答 6

1

简单的朋友,

在您的AsyncTask类的构造函数中,您有一个调用 Activity 的上下文

比如,mContext..

现在将此上下文传递给您的TestAdapter 的 Constructor

像,

@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()
        }
于 2012-08-17T10:47:20.897 回答
1

首先在您的活动中声明首先在顶部声明Context context = null;

然后在 onCreate context = this;

现在您可以使用您的方法,例如:

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

于 2012-08-17T10:48:35.133 回答
0

制作方法TestAdapter adapter = new TestAdapter(YourCurrentActivityName.this)。然后在你想要的地方onCreate()调用adapter.setFlag();方法。onPostExecute()

于 2012-08-17T10:47:39.423 回答
0

试试这个。

TestAdapter object = new TestAdapter(CurrentActivty.this);

通过这种方式,您可以创建TestAdapter类的对象。

于 2012-08-17T10:47:55.010 回答
0

你可以这样做

TestAdapter t =new TestAdapter(getApplicationContext());
于 2012-08-17T10:48:59.410 回答
0

如果您说出您的 IDE 或 LogCat 给您的错误,会更容易帮助您。根据构造函数的要求,使用 Context 进行实例化。

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

ctx 是您的上下文。

于 2012-08-17T10:49:07.267 回答