隐藏的EditText和放大器;使其可见通过点击菜单 [英] Hide a EditText & make it visible by clicking a menu
本文介绍了隐藏的EditText和放大器;使其可见通过点击菜单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
予有具有电话的接触deatils的布局。当我点击选项菜单,我需要做的是屏幕一个EditText可见。我已经做了。但是,面临的问题是,编辑文本高度占据了屏幕时,它不可见。如何删除通过编辑文本所占用的空间,而其在屏幕(布局)..看不见我的code下面给出
我的XML是:
< XML版本=1.0编码=UTF-8&GT?;
< LinearLayout中的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:方向=垂直机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT机器人:以下属性来=10dp
机器人:paddingRight =10dp>
< ListView的机器人:ID =@ ID / Android的:清单机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT机器人:layout_weight =1
机器人:drawSelectorOnTop =假>
< / ListView控件>
< TextView的机器人:ID =@ ID /安卓:空机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT机器人:文本=没有文件可用>
< / TextView的>
<的TableRow机器人:ID =@ + ID / TableRow001
机器人:layout_width =WRAP_CONTENT机器人:后台=#C0C0C0
机器人:layout_height =WRAP_CONTENT>
< EditText上机器人:ID =@ + ID / NumberEditText01
机器人:layout_width =WRAP_CONTENT
机器人:以下属性来=20dip
机器人:layout_height =WRAP_CONTENT>
< /的EditText>
<按钮机器人:layout_width =WRAP_CONTENT机器人:ID =@ + ID / callNow01
机器人:layout_height =WRAP_CONTENT
机器人:文本=立即致电
>
< /按钮>
< /的TableRow>
< / LinearLayout中>
类:Listcontacts
公共类ListContacts扩展ListActivity {
的TableRow tablerow的;
的EditText phoneNumber的;
按钮callNow;
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
//与活动相关联的XML
的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 =(按钮)findViewById(R.id.callNow01);
callNow.setVisibility(View.INVISIBLE);
}
@覆盖
公共布尔onOptionsItemSelected(菜单项项){
开关(item.getItemId()){
如遇到先:
tableRow.setVisibility(View.VISIBLE);
phoneNumber.setVisibility(View.VISIBLE);
callNow.setVisibility(View.VISIBLE);
打破;
}
}
}
解决方案
尝试 phoneNumber.setVisibility(View.GONE);
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>
Class : Listcontacts
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;
}
}
}
解决方案
Try phoneNumber.setVisibility(View.GONE);
这篇关于隐藏的EditText和放大器;使其可见通过点击菜单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文