无法使TextView可见

时间:2014-03-06 10:59:29

标签: android

点击按钮时,我试图将textview元素设置为可见。我以这种方式将TextView设置为不可见和Button:

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/button1"
    android:layout_below="@+id/button1"
    android:layout_marginTop="67dp"
    android:text="TextView"
    android:visibility="invisible" />

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/button1"
    android:layout_alignBottom="@+id/button1"
    android:layout_marginLeft="19dp"
    android:layout_toRightOf="@+id/radioGroup1"
    android:text="Solution" />

现在,在单击按钮后将textview设置为可见,我编写了以下java代码:

Button sl;
TextView tv;
sl=(Button)findViewById(R.id.button2);


tv=(TextView)findViewById(R.id.textView2);
sl.setOnClickListener(new View.OnClickListener() {

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

但是点击按钮后,文本视图框不会显示。

修改: 总代码:

package com.example.aptitude;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TextView;

public class QuesOne extends Activity implements OnCheckedChangeListener,OnClickListener{

    RadioGroup rg;
    Button bt,sl;
    TextView tv;
    Bundle b;
    Intent in;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.q1);
        rg=(RadioGroup)findViewById(R.id.radioGroup1);
        bt=(Button)findViewById(R.id.button1);
        sl=(Button)findViewById(R.id.button2);
        tv=(TextView)findViewById(R.id.textView2);
        rg.setOnCheckedChangeListener(this);
        bt.setOnClickListener(this);
        sl.setOnClickListener(new View.OnClickListener() {

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

    }
    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
        // TODO Auto-generated method stub
        b=new Bundle();
        in=new Intent("com.example.aptitude.TWO");
        int n=0;

        switch(checkedId){
            case R.id.radio0:
                n=0;
                b.putInt("key", n);
                break;
            case R.id.radio1:
                n=0;
                b.putInt("key", n);
                break;
            case R.id.radio2:
                n=0;
                b.putInt("key", n);
                break;
            case R.id.radio3:
                n++;
                b.putInt("key", n);
                break;
        }
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        in.putExtras(b);
        startActivity(in);
    }


}

XML文件:

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

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="40dp"
        android:layout_marginTop="50dp"
        android:textStyle="bold"
        android:text="CORPULENT" />

    <RadioGroup
        android:id="@+id/radioGroup1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="27dp" >

        <RadioButton
            android:id="@+id/radio0"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:text="Lean" />

        <RadioButton
            android:id="@+id/radio1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Gaunt" />

        <RadioButton
            android:id="@+id/radio2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Emaciated" />

        <RadioButton
            android:id="@+id/radio3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Obese" />
    </RadioGroup>

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/textView1"
        android:layout_below="@+id/radioGroup1"
        android:layout_marginTop="38dp"
        android:text="Next" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button1"
        android:layout_below="@+id/button1"
        android:layout_marginTop="67dp"
        android:text="TextView"
        android:visibility="gone" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button1"
        android:layout_alignBottom="@+id/button1"
        android:layout_marginLeft="19dp"
        android:layout_toRightOf="@+id/radioGroup1"
        android:text="Solution" />

   </RelativeLayout>

5 个答案:

答案 0 :(得分:2)

<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button1"
android:layout_below="@+id/button1"
android:text="TextView"
android:visibility="gone" />

试试这个

答案 1 :(得分:2)

我不确定但是定位物品可能存在问题。如果您在RelativeLayout中使用这些项目,该按钮将出现在textview前面,因此您看不到它。

即使textview是INVISIBLE,你也应该在textview的位置看到一个空白区域。

答案 2 :(得分:1)

尝试如下。问题可能是您的文字视图超出了屏幕区域,因为android:layout_marginTop="67dp"我不确定,但这正是我猜的所以删除该行并尝试使用下面的代码。

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

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/button1"
    android:layout_alignBottom="@+id/button1"
    android:layout_marginLeft="19dp"
    android:layout_toRightOf="@+id/radioGroup1"
    android:text="Solution" />

和Java。

Button b1;
TextView tv;
sl=(Button)findViewById(R.id.button2);


tv=(TextView)findViewById(R.id.textView2);
b1.setOnClickListener(new View.OnClickListener() {

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

答案 3 :(得分:0)

确保TextView和Button的父级是LinearLayout而不是RelativeLayout或FrameLayout,或者也设置Button的可见性:

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    tv.setVisibility(View.VISIBLE);
    sl.setVisibility(View.GONE);
}

答案 4 :(得分:0)

您的代码中有两个onClick实现:

首先,您已将onClickListener设置为按钮,如:

sl.setOnClickListener(new View.OnClickListener() {

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

您还实施了OnClickListener,如:

@Override

public void onClick(View v) {
    // TODO Auto-generated method stub
    in.putExtras(b);
    startActivity(in);
}

尝试只使用一种方法,然后将代码放入其中。我认为应该可以正常工作。