xmlレイアウトを使用せずに、Java内で完全に作成されたRelativeLayoutがあります。画面の左側にいくつかのボタンがあります。1つのボタンをクリックして、ボタンの横に解像度/ドローアブルのデフォルトの画像を表示し、2回目のクリックで再び消えるようにします。私が試したのは可視性を切り替えることでしたが、onClick()は致命的な例外であるNullPointerExceptionを発生させます。
これはこれまでの私のコードです。picview.setVisibility(View.INVISIBLE);を設定すると、画像が正しく表示されます。手で。onClick()で何が間違っていますか?
private ImageView picview;
//*snip* loads of other code
//Show Image Button
ImageButton show_pic = new ImageButton(this);
show_pic.setBackgroundColor(Color.WHITE);
show_pic.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
if(picview.getVisibility() == View.INVISIBLE)
{
picview.setVisibility(View.VISIBLE);
}
else if (picview.getVisibility() == View.VISIBLE)
{
picview.setVisibility(View.INVISIBLE);
}
}
});
params = new RelativeLayout.LayoutParams(40, 40);
params.topMargin = 10;
params.leftMargin = 10;
params.addRule(RelativeLayout.BELOW, button2_id);
rl.addView(show_pic, params);
//Imageview loaded from drawable
ImageView picview = new ImageView(this);
params = new RelativeLayout.LayoutParams(200, 400);
params.topMargin = 0;
params.leftMargin = 30;
params.addRule(RelativeLayout.RIGHT_OF, button2_id);
picview.setImageResource(R.drawable.my_image);
picview.setVisibility(View.INVISIBLE);
rl.addView(picview, params);
this.setContentView(rl);