当我点击它时,如何更改文本视图可见性,即使它被隐藏了?

时间:2014-08-20 10:58:25

标签: android layout textview

我所拥有的是两个文本视图,我想要做的是当我开始在其中一个中写入时,另一个将是不可见的,哪个工作正常,这是代码:

@Override
                    public void onFocusChange(View v, boolean hasFocus) {

                                textView2.setVisibility(View.INVISIBLE);

                    }
                });
              textView2.setOnFocusChangeListener(new OnFocusChangeListener() {                      
                    @Override
                    public void onFocusChange(View v, boolean hasFocus) {
                        // TODO Auto-generated method stub

                                textView.setVisibility(View.INVISIBLE);                     

                    }
                });

但问题是,我也要反过来..所以如果(textview)被隐藏,我点击它隐藏的区域,返回可见,另一个是隐形的, 我怎样才能做到这一点?有什么帮助吗?

3 个答案:

答案 0 :(得分:0)

您可以通过检查第二个textview是否聚焦来显示/隐藏您的第一个textView:

textView2.setOnFocusChangeListener(new OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus) {
            textView.setVisibility(View.INVISIBLE);
        } else {
            textView.setVisibility(View.VISIBLE);
        }
    }
});

textView.setOnFocusChangeListener(new OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus) {
            textView2.setVisibility(View.INVISIBLE);
        } else {
            textView2.setVisibility(View.VISIBLE);
        }
    }
});

编辑:

View.OnClickListener clickListener = new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        v.setVisibility(View.VISIBLE);
    }
});
textView.setOnClickListener(clickListener);
textView2.setOnClickListener(clickListener);

答案 1 :(得分:0)

你可以这样做:

<LinearLayout
        android:id="@+id/txt1"
        android:layout_width="match_parent"
        android:layout_height="30dp">

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView" />

</LinearLayout>  
<LinearLayout
        android:id="@+id/txt2"
        android:layout_width="match_parent"
        android:layout_height="30dp" >

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="TextView"
            android:visibility="invisible" />

 </LinearLayout>  

第二个线性布局有它的区域。但是内部textView没有显示。所以你可以为它设置onClick。

LinearLayout l1 = (LinearLayout) findViewById(R.id.txt1);  
final TextView textView2 = (TextView) findViewById(R.id.textView2); 
l1.setOnClickListener(new OnClickListener(){
    @override
    public void onClick(View view){
       textView2.setVisibility(View.VISIBLE);
    }
});

答案 2 :(得分:0)

使用setVisibility()方法执行此操作

//To make textView not visible
textView.setVisibility(View.GONE);

//To make textView visible
textView.setVisibility(View.VISIBLE);