やり方が分からなかったのですが、Twitterで方法を教えて貰いました。
やりかた
XML定義
TextViewとButtonを定義します。ここは普通。
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/txt" android:text="@string/hello" android:layout_width="fill_parent" android:layout_height="wrap_content" ></TextView> <Button android:text="button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="onClickBtn" ></Button> </LinearLayout>
Javaコード
ボタンが押されたらTextViewを非表示にして詰める処理。
public class Hello2 extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void onClickBtn(View v) { TextView txt = (TextView) findViewById(R.id.txt); txt.setVisibility(View.GONE); } }
View#setVisibility はwidgetを非表示にする際によく使いますが、引数に View.GONE が設定できる事を初めて知りました。View.INVISIBLE を使うと非表示にするけど詰めないが、View.GONEを使うと非表示にして詰めてくれるみたいです。
感謝
もっこう先生ありがとうございます!