我的Edittext开始不可见,如何在可见时使其可编辑?

时间:2016-06-14 09:51:33

标签: android android-edittext

通常情况下,我会用XML格式化,或者使用

从代码中设置它
.setEnabled(true);

但我无法在这种情况下使用它。简而言之,EditText设置为不可见,CheckBox点击它会淡入视图并且应该是可编辑的但是......它不是。 EditText按预期淡入和淡出,但文字无法在框中输入...怎么办?

这是我的代码:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.addcontact);

//      initialise the edittexts
        textcategory = (EditText) findViewById(R.id.textCategory);
        textcategory.setVisibility(View.INVISIBLE);

        fadeInAnimation = AnimationUtils.loadAnimation(this, R.anim.fadein);
        fadeOutAnimation = AnimationUtils.loadAnimation(this, R.anim.fadeout);

//      lets be able to manipuate checkbox,
//        make other things visible or not when checked
        checkBox = (CheckBox) findViewById(R.id.checkBox);

        checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

                if (isChecked) {
                    // Now Set your animation
                    textcategory.startAnimation(fadeInAnimation);
                    fadeInAnimation.setFillAfter(true);

                } else {

                    // Now Set your animation
                    textcategory.startAnimation(fadeOutAnimation);

                }

            }
        });

    }

我的XML:

<EditText
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="5dp"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:hint="Select a Category"
    android:textSize="18sp"
    android:layout_marginBottom="10dp"
    android:id="@+id/textCategory"
    android:background="@drawable/back"
    android:layout_below="@+id/checkBox"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

4 个答案:

答案 0 :(得分:2)

如果您使用以下内容隐藏了EditText

textcategory.setVisibility(View.INVISIBLE);

然后,您应该调用以下内容代替setEnabled(true)

textcategory.setVisibility(View.VISIBLE);

再次展示。

只有在您明确禁用了setEnabled()

时才应调用{p> View

答案 1 :(得分:1)

动画结束后,

textView的setVisibility而不是fadeInAnimation.setFillAfter(true);

答案 2 :(得分:1)

在你的xml中添加这一行

android:alpha="0"

然后从您的活动中删除此行

textcategory.setVisibility(View.INVISIBLE);

对于动画,您可以直接使用

中的ViewPropertyAnimation
checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {

     @Override
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
           if (isChecked) {
                    // Now Set your animation
                   textcategory.animate().alpha(1).setDuration(1000).start();
                } else {

                    // Now Set your animation
                    textcategory.startAnimation(fadeOutAnimation);
                }
            }
        });

答案 3 :(得分:0)

yourEditText.setVisibility(View.VISIBLE);
yourEditText.setFocusable(true);
yourEditText.setClickable(true);