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

あなたのアクティビティで最初に宣言し、最初に上に宣言しますContext context = null;

次に onCreate でcontext = this;

これで、次のようなメソッドを使用できます。

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

于 2012-08-17T10:48:35.133 に答える
1

シンプルバディ、

AsyncTaskクラスのコンストラクターには、Calling Activity の Context があります。

のように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 に答える
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 に答える