開発したいシンプルなカードゲームには、button1、button2、button3の3つのボタンがあります。button1は、テーブル行に2つの画像ビューを作成し、画像を表示します。button2および/またはbutton3をクリックすると、レイアウトインフレータを介してテーブル行にimageviewが動的に追加されます。ゲームが終わったら、ユーザーにbutton1をクリックして、最初からやり直してもらいたいです。私はそれを行うことができますが、問題は、ボタン2とボタン3をクリックして以前に表示されたイメージビューも表示されることです。button1がクリックされたときにそれらを削除したい。button1をクリックしてそれらを削除するにはどうすればよいですか?私を助けてください!
10746 次
4 に答える
7
ビューを追加したのと同じように、それらを削除できます。removeViewAt(int index)
必要なビューを削除するには、またはremoveView(View view)
親コンテナを呼び出すだけです。
または、それらの再利用が予想される場合は、それらの可視性をに設定するだけですGONE
。その後、再び膨らませることなく、それらを戻すことができます。
インフレータにインフレートされたイメージビューを親に自動的にアタッチさせる場合は、追加されたビューの位置を追跡する必要があります。getChildCount
膨らませる直前に親で使用して、追加される次のビューのインデックスを見つけることができます。
于 2012-07-03T20:49:29.883 に答える
2
于 2012-07-03T20:50:05.887 に答える
1
//ビューを追加
LayoutInflater inflater = (LayoutInflater)this.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
final View buttons = inflater.inflate(R.layout.activity, null );
addContentView(buttons, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
//ビューを削除
((ViewManager)buttons.getParent()).removeView(buttons);
于 2018-08-12T12:42:04.530 に答える