ボタンはキャンバスでは機能しません。発信者をメッセージに変更/追加する必要はありますか?ボタンは作成されますが、を押すと反応しません。キャンバスがボタンの上にある可能性はありますか?Android。キャンバスでボタンが機能しない
public class ButtonInCanvas extends AppCompatActivity implements View.OnClickListener {
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
button = new Button(ButtonInCanvas.this);
button.setOnClickListener(this);
button.setText("OK!");
setContentView(new BtInCanvas(ButtonInCanvas.this));
}
public class BtInCanvas extends View {
public BtInCanvas(Context context) {
super(context);
}
public void onDraw(Canvas canvas){
button.layout(50,50,300,300);
button.draw(canvas);
}
}
@Override
public void onClick(View v) {
Toast.makeText(this,"OK!",Toast.LENGTH_LONG).show();
}
}
をあなたは自分のコードを使用してキャンバスにボタン画像を描画します。キャンバスに追加しないでください。キャンバスはchildViewを保持するViewGroupではありません。クリックを処理するには、あなたの 'BtInCanvas'ビューにonClickListenerを追加する必要があります。しかし、とにかくあなたのコードは非常に奇妙なもののように見えます。なぜボタンをキャンバスに追加する必要がありますか? –