EditText にボタンを配置し、メイン XML の開始コードでボタンを非表示に設定しました。
RelativeLayout android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_marginTop="10dp">
<EditText android:id="@+id/editText1" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:hint="@string/search_prompt"/>
<Button android:id="@+id/button1" android:layout_width="40dp"
android:layout_height="wrap_content" android:layout_alignBottom="@+id/editText1"
android:layout_alignParentRight="true" android:layout_alignParentTop="true"
android:layout_margin="5dp" android:background="@drawable/search"
android:onClick="loadWeather" android:visibility="invisible"/>
</RelativeLayout>
EditText が空の場合、EditText にテキストがある場合にのみ Button が表示されるようにする必要があります。
final Button searchButton = (Button) findViewById(R.id.button1);
final EditText myEditText = (EditText) findViewById(R.id.editText1);
myEditText.setKeyListener(new KeyListener() {
public boolean onKeyUp(View arg0, Editable arg1, int arg2, KeyEvent arg3) {
// TODO Auto-generated method stub
if(!myEditText.getText().equals("")){
searchButton.setVisibility(View.VISIBLE);
}
return false;
}
public boolean onKeyOther(View arg0, Editable arg1, KeyEvent arg2) {
// TODO Auto-generated method stub
return false;
}
public boolean onKeyDown(View arg0, Editable arg1, int arg2, KeyEvent arg3) {
// TODO Auto-generated method stub
return false;
}
public int getInputType() {
// TODO Auto-generated method stub
return 0;
}
public void clearMetaKeyState(View arg0, Editable arg1, int arg2) {
// TODO Auto-generated method stub
}
});
開始時に Button が非表示になりますが、EditText にテキストを入力できなくなりました。EditText はキーボードからの入力を取得しません。このバグを取り除く方法を mo に教えてください。