単純なタスクに問題があります。
2 つのボタンがあり、同時に 1 つだけを表示したいので、1 つをタッチすると非表示になり、もう 1 つが表示されます。
これは私のコードです:
fromAnex = new Button(this);
fromAnex.setText("from");
fromAnex.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("ONClickListener", "from anex");
returnFromAnex();
}
});
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.LEFT_OF,plano.getId());
params.addRule(RelativeLayout.CENTER_VERTICAL);
rl.addView(fromAnex,params);
fromAnex.setVisibility(View.GONE);
toAnex = new Button(this);
toAnex.setText("to");
toAnex.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("ONClickListener", "Show anex");
showAnex();
}
});
RelativeLayout.LayoutParams params2 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
params2.addRule(RelativeLayout.RIGHT_OF,plano.getId());
params2.addRule(RelativeLayout.CENTER_VERTICAL);
rl.addView(toAnex,params2);
private void showAnex()
{
fromAnex.setVisibility(View.VISIBLE);
toAnex.setVisibility(View.GONE);
private void returnFromAnex()
{
fromAnex.setVisibility(View.GONE);
toAnex.setVisibility(View.VISIBLE);
理由は本当にわかりませんが、へfromAnex.setVisibility(View.GONE);
の最初の呼び出しは期待どおりに機能し、showAnex() への最初の呼び出しも機能しfromAnex.setVisibility(View.VISIBLE);
ていますが、toAnex.setVisibility(View.GONE);
すぐ下では機能しません。
その後、タッチしてもボタンの表示に何も起こりません。
誰かが私のコードの何が問題なのかを知ることができますか?
私の悪い英語で申し訳ありませんが、ありがとうございます。
編集:
その 2 つの方法は完全ではありません。残りの方法は、このボタンの表示の問題とは関係ありません。
ボタンを作成した直後に可視性を設定すると機能しますが、可視性を再び設定することはできません。それが問題です。