1

キャンバスを使用してビットマップを描画しました。ここではすべて問題なく、ビューを拡張するクラスを使用し、コンストラクター super(context, attributesset); を使用しました。今、別のクラスのメソッドを使用したいのですが、これを機能させる方法は、クラスを拡張するビューがこれら2つのコンストラクターを必要とすることを知っている限り、Androidで動作するように設定する必要があります(変更しようとしたところ、ビューを拡張するため、このようなコンストラクターが必要です)。

これは私のコードです:

public class GameBoard extends View{

    private static final String tag = "GameBoard";

    private Paint p;
    private Load load;

    public GameBoard(Context context, Load load) {

            super(context);
            p = new Paint();
            this.load = load;

//このクラスには他にもたくさんありますが、ここでは関係ありません。

     }

そして、これは他のクラスです:

public class Load{

Context context;

// TODO ファイルからこれらの情報をロードし、テクスチャを電話の画面サイズに合わせます int mSize = 99; int tSize = 48; int screenCoords = 160; int rectX = 10; int rectY = 16;

String coordsFileName ="coordsData.txt";

public Load (Context context) {
    this.context = context;
}

編集:

同じ問題を抱えているすべての人のための解決策を見つけました。たとえば、拡張クラスでオブジェクトを作成するだけです。

private OtherClass otherclass;

//そしてそのコンストラクターで、新しいオブジェクトを作成するだけです

this.otherclass = new OtherClass();
4

2 に答える 2

1

GameBoardXML レイアウトからではなく、コード内でオブジェクトを作成してから、レイアウトに追加してください。この場合、コンストラクターを作成し、必要なオブジェクトを渡すことができます。xml でを作成しFrameLayout、ビューをそのレイアウトに追加できます。

于 2013-04-22T10:13:01.853 に答える