单击按钮显示编辑文本框

时间:2012-03-06 07:09:59

标签: android android-edittext

我正在android中创建一个用户表单。我想在单击按钮时显示编辑文本框。在该按钮下方,同时最初出现在该按钮下方的内容向下移动更多。
怎么办呢?

5 个答案:

答案 0 :(得分:11)

如果你只想“点击一个按钮显示一个编辑文本框”,你为什么不这样做..

将EditText保留在XML布局的文件中位于按钮下方所需的位置

XML设置

android:visibility = "gone"

并制作

的实例

EditText et=(EditText)findViewById(R.id.thatEditText);

在活动中...在按钮点击事件集

et.setVisibility(View.VISIBLE);

答案 1 :(得分:3)

在布局中定义视图,然后在代码中显示并隐藏它 myView.setVisibility(View.VISIBLE)myView.setVisibility(View.GONE)

答案 2 :(得分:3)

    //xml file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

<Button 
    android:id="@+id/btn"
  android:layout_width="fill_parent"
    android:layout_height="wrap_content"  
    android:text="Button"
    />
<EditText 
   android:id="@+id/edtbox"
  android:layout_width="fill_parent"
    android:layout_height="wrap_content"    


    />
</LinearLayout>


//Activity

//oncreate

editText.setVisibility(View.GONE);

btn..setOnClickListener(new OnClickListener() {

                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    editText.setVisibility(View.VISIBLE);
                }
            });

答案 3 :(得分:1)

在xml中定义EditText并隐藏它。单击按钮时,将其可见性更改为View.Visible。

 YourEditText.setVisibility(View.GONE);

 btn.setOnClickListener(new View.OnClickListener() 
     {
        public void onClick(View v)
         {              
          YourEditText.setVisibility(View.VISIBLE);
          }
       });

答案 4 :(得分:1)

如果您的布局是相对的,则addView(yourView,index)不起作用。假设您想要在对该控件进行其他控制和引用之后添加视图。

e.g。

<RelativeLayout android:id="@+id/templayout">
   <Button android:id="@+id/button"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="add"/>

并且您希望在文本View之后添加编辑文本控件然后单击按钮:

RelativeLayout relativeLayout = (RelativeLayout)findViewById(R.id.templayout);
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
            ViewGroup.LayoutParams.WRAP_CONTENT);

    params.addRule(RelativeLayout.BELOW, R.id.title);
    EditText yourEditText = new EditText(this);
    relativeLayout.addView(yourEditText, params);