隐藏或显示editText

时间:2014-10-14 05:36:35

标签: android android-edittext

我有一个editText(默认隐藏)和一个按钮。我想在点击按钮时显示editText,并在再次按下按钮时隐藏。如果editText框失去焦点,editText也应隐藏。 如何才能做到这一点? 感谢您提供的帮助。

2 个答案:

答案 0 :(得分:3)

你可以这样使用这里的主要概念是 editText.setVisibility(View.GONE);

你必须添加动画文件int res / anim / filename.xml,如果你没有意味着你必须在项目的res文件夹中创建anim文件夹..

slide_left_in.xml到里面......

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
     android:interpolator="@android:anim/linear_interpolator"
     android:fillAfter="true">

<translate
    android:fromXDelta="100%p"
    android:toXDelta="0%p"
    android:duration="500" />
</set>

省略了动画,你必须为所有动画创建单独的文件slide_right_out.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator"
android:fillAfter="true">

<translate
    android:fromYDelta="0%p"
    android:toXDelta="-100%p"
    android:duration="350" />

</set>

您可以在活动中使用此动画,如下所示。

    Button button = (Button) findViewById(R.id.button);
    final EditText editText = (EditText) findViewById(R.id.edittext);
    final Animation slide_left_in = AnimationUtils.loadAnimation(
            getApplicationContext(), R.anim.slide_left_in);
    final Animation slide_right_out = AnimationUtils.loadAnimation(
            getApplicationContext(), R.anim.slide_right_out);
    button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            if (editText.getVisibility() == View.VISIBLE) {
                editText.startAnimation(slide_right_out);
                editText.setVisibility(View.GONE);
            } else {
                editText.setVisibility(View.VISIBLE);
                editText.startAnimation(slide_left_in);
            }
        }
    });

答案 1 :(得分:0)

首先,您需要在EditText

中使用此代码android:visibility="gone" Layout.xml {{}}} {}
  <EditText
    android:id="@+id/editText1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:ems="10"
    android:visibility="gone" >

然后在Button点击事件中,您需要使用以下代码:

myButton.setOnClickListener(new View.OnClickListener() {

  @Override
  public void onClick(View v) { 
         if (myEditText.getVisibility() == View.GONE) {
             // showing the EditText
             myEditText.setVisibility(View.VISIBLE);
             myEditText..requestFocus(); //Request Focus on EditText
         } else{
            myEditText.setVisibility(View.GONE);
        }

    }
});

<强> 修改

动画 ,您可以使用thisthisthisthis