隐藏的EditText和放大器;使其可见通过点击菜单 [英] Hide a EditText & make it visible by clicking a menu

查看:126
本文介绍了隐藏的EditText和放大器;使其可见通过点击菜单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

予有具有电话的接触deatils的布局。当我点击选项菜单,我需要做的是屏幕一个EditText可见。我已经做了。但是,面临的问题是,编辑文本高度占据了屏幕时,它不可见。如何删除通过编辑文本所占用的空间,而其在屏幕(布局)..看不见我的code下面给出

我的XML是:

 < XML版本=1.0编码=UTF-8&GT?;
 < LinearLayout中的xmlns:机器人=htt​​p://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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆