点击按钮时,我试图将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>
答案 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);
}
尝试只使用一种方法,然后将代码放入其中。我认为应该可以正常工作。