I have a layout having the contact deatils of the phone. When i click the option menu i need make an edittext visible in that screen. I have done it. But there is problem facing that the edit text height is occupied in the screen when its made invisible. How can i remove the space occupied by edit text, while its invisible in the screen(layout).. My code is given below
My xml is:
<?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" android:paddingLeft="10dp" android:paddingRight="10dp"> <ListView android:id="@id/android:list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:drawSelectorOnTop="false"> </ListView> <TextView android:id="@id/android:empty" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="No Entries available"> </TextView> <TableRow android:id="@+id/TableRow001" android:layout_width="wrap_content" android:background="#C0C0C0" android:layout_height="wrap_content"> <EditText android:id="@+id/NumberEditText01" android:layout_width="wrap_content" android:paddingLeft="20dip" android:layout_height="wrap_content"> </EditText> <Button android:layout_width="wrap_content" android:id="@+id/callNow01" android:layout_height="wrap_content" android:text="Call now" > </Button> </TableRow> </LinearLayout>
and class:
public class ListContacts extends ListActivity { TableRow tableRow; EditText phoneNumber; Button callNow; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Associate the xml with the activity setContentView(R.layout.activitylist); tableRow = (TableRow) findViewById(R.id.TableRow001); tableRow.setVisibility(View.INVISIBLE); phoneNumber = (EditText) findViewById(R.id.NumberEditText01); phoneNumber.setVisibility(View.INVISIBLE); phoneNumber.setKeyListener(DialerKeyListener.getInstance()); callNow = (Button) findViewById(R.id.callNow01); callNow.setVisibility(View.INVISIBLE); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case FIRST: tableRow.setVisibility(View.VISIBLE); phoneNumber.setVisibility(View.VISIBLE); callNow.setVisibility(View.VISIBLE); break; } } }
Hiding the Soft Keyboard ProgrammaticallyYou can force Android to hide the virtual keyboard using the InputMethodManager, calling hideSoftInputFromWindow, passing in the token of the window containing your edit field. This will force the keyboard to be hidden in all situations.
setShowSoftInputOnFocus(false); to disable the software keyboard showing when the EditText is touched. the hideKeyboard(this); call in OnCreate to forcible hide the software keyboard.
Try phoneNumber.setVisibility(View.GONE);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With