クリック可能な長方形を作ろうとしています。私は周りを見回して、かなり良いコードを作成しました:)
独自の長方形クラスのコンストラクターを作成し、その値をいくつか設定します。ただし、onDraw メソッドは長方形を作成して描画するように見えますが、コンストラクターの新しい変数の値はありません。私は何を間違っていますか?
これはデフォルトの MyActivity クラスです:
ll = (LinearLayout)findViewById(R.id.linearlayout);
List<MiniRectangle> miniRectangleList = new ArrayList<MiniRectangle>();
for(int i=0;i<8;i++)
{
int numberRandom = r.nextInt(3);
MiniRectangle miniRectangle = new MiniRectangle(this);
miniRectangle.set_color(colors.get(numberRandom));
miniRectangle.set_size(50);
miniRectangle.set_id_color(numberRandom);
miniRectangle.set_number(i);
ll.addView(miniRectangle);
miniRectangleList.add(miniRectangle);
}
setContentView(ll);
これは私自身の長方形クラスです
public class MiniRectangle extends View implements View.OnClickListener {
Context context;
int _size;
int _color;
int _id_color;
int _number;
public MiniRectangle(Context context) {
super(context);
this.context = context;
setOnClickListener(this);
}
@Override
public void onClick(View view) {
System.out.println(get_number());
Toast.makeText(context, get_number(), Toast.LENGTH_SHORT).show();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setColor(get_color());
paint.setStrokeWidth(1);
int kleft = (get_number() % 8) * get_size();
int kright = kleft + get_size() - 2;
int ktop = 1 * get_size();
int kbottom = ktop + get_size() - 2;
canvas.drawRect(kleft, ktop, kright, kbottom, paint);
}
}
プロジェクトを実行した後、長方形が1つしか得られないと言えます。すべての長方形が同じ位置にあるのも不思議ではありません。助けてください。
結果には、クリック可能な四角形のチェスが表示されます。