0

私は次の活動をしています

public class BmiHistory extends Activity {


public Cursor cursor;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //setContentView(R.layout.bmihistory);
    final DatabaseHandler databaseOpen = new DatabaseHandler(this);
    final SQLiteDatabase db = databaseOpen.getReadableDatabase();

    Cursor c1 = db.rawQuery("select * from bmi", null);
    startManagingCursor(c1);
    c1.moveToFirst();
    this.cursor = c1; 
    while(!c1.isAfterLast()) {
        System.out.println(c1.getString(2));
        c1.moveToNext();
    }
    c1.close();


    BmiGraph drawView = new BmiGraph(this);
    drawView.setBackgroundColor(Color.WHITE);
    setContentView(drawView);

}


}

このアクティビティから次のクラスが呼び出されます

public class BmiGraph extends View {

Paint paint = new Paint();


public BmiGraph(BmiHistory context) {
    super(context);
    // TODO Auto-generated constructor stub
    System.out.println(context.toString());
}

public void onDraw(Canvas canvas) {
    paint.setColor(Color.BLACK);
    paint.setStrokeWidth(3);
    ...
}


}

私の質問は、グラフをプロットするために、アクティビティのカーソルからのデータを2番目のクラスで使用できるようにするにはどうすればよいですか?

どうもありがとう

4

1 に答える 1

0

BmiGraphクラスのコンストラクターを変更して、カーソルを入力として受け入れることができます(以下を参照)。次に、BmiGraphクラス内からカーソルにアクセスできるようになります。

public class BmiGraph extends View {

Paint paint = new Paint();

Cursor _someCursor;    

public BmiGraph(BmiHistory context, Cursor someCursor) {
    super(context);
    // TODO Auto-generated constructor stub
    System.out.println(context.toString());

    _someCursor = someCursor
}

public void onDraw(Canvas canvas) {
    paint.setColor(Color.BLACK);
    paint.setStrokeWidth(3);
    ...
}


}
于 2013-01-03T03:28:27.543 に答える