Java 如何创建具有不可见属性的视图';可见';点击按钮后
我有几个视图、文本视图和一个具有android:visibility=“invisible”属性的按钮。我的目标是单击这些“不可见”小部件上方的按钮,以便这些小部件变得可见。我创建了另一个名为“VisibilityActivity.java”的java类,并尝试了以下方法。但由于某种原因,当我运行应用程序时,按钮没有任何作用。我不知道我缺少了什么 代码如下:Java 如何创建具有不可见属性的视图';可见';点击按钮后,java,android,eclipse,button,visibility,Java,Android,Eclipse,Button,Visibility,我有几个视图、文本视图和一个具有android:visibility=“invisible”属性的按钮。我的目标是单击这些“不可见”小部件上方的按钮,以便这些小部件变得可见。我创建了另一个名为“VisibilityActivity.java”的java类,并尝试了以下方法。但由于某种原因,当我运行应用程序时,按钮没有任何作用。我不知道我缺少了什么 代码如下: import android.app.Activity; import android.os.Bundle; import android
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class VisibilityActivity extends Activity {
private View mVictim;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.new_property3);
mVictim = findViewById(R.id.horizontalRule1);
mVictim = findViewById(R.id.TextView03);
mVictim = findViewById(R.id.horizontalRule2);
Button submitRating = (Button) findViewById(R.id.submitRatingButton);
submitRating.setOnClickListener(mVisibleListener);
}
OnClickListener mVisibleListener = new OnClickListener() {
public void onClick(View v) {
mVictim.setVisibility(View.INVISIBLE);
}
};
}
以下是xml:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/custom_background"
android:isScrollContainer="true"
android:orientation="vertical"
android:paddingTop="10dp" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_gravity="center"
android:text="@string/ratingsInfo"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/black1" />
<View
android:layout_width="fill_parent"
android:layout_height="2dp"
android:background="@color/black1"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:layout_marginBottom="5dp" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:text="@string/yourRating"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/black1" />
<RatingBar
android:id="@+id/ratingBar1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="10dp" />
<Button
android:id="@+id/submitRatingButton"
android:layout_width="275dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="10dp"
android:background="@drawable/custom_button"
android:text="@string/submitRating"
android:textColor="@color/black1" />
<View
android:id="@+id/horizontalRule1"
android:layout_width="fill_parent"
android:layout_height="2dp"
android:background="@color/black1"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:layout_marginBottom="5dp"
android:visibility="invisible" />
<TextView
android:id="@+id/TextView03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_gravity="center"
android:text="@string/summaryInfo"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/black1"
android:visibility="invisible" />
<View
android:id="@+id/horizontalRule2"
android:layout_width="fill_parent"
android:layout_height="2dp"
android:background="@color/black1"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:layout_marginBottom="5dp"
android:visibility="invisible" />
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:text="@string/ourRating"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/black1"
android:visibility="invisible" />
<RatingBar
android:id="@+id/ratingBar2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:stepSize=".01"
android:layout_marginBottom="10dp"
android:visibility="invisible" />
<TextView
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:text="@string/overallRating"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/black1"
android:visibility="invisible" />
<RatingBar
android:id="@+id/ratingBar3"
android:color="@color/black1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:stepSize=".01"
android:layout_marginBottom="40dp"
android:visibility="invisible" />
<Button
android:id="@+id/saveContinueButton3"
android:layout_width="275dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="15dp"
android:background="@drawable/custom_button"
android:text="@string/saveContinue"
android:textColor="@color/black1"
android:onClick="onSaveAndContinue3Clicked"
android:visibility="invisible" />
</LinearLayout>
</ScrollView>
谢谢。非常感谢您的帮助
findViewById(R.id.ratingBar3).setVisibility(View.VISIBLE);
findViewById(R.id.saveContinueButton3).setVisibility(View.VISIBLE);
您使其不可见视图再次不可见。请尝试上面的代码
public class VisibilityActivity extends Activity {
private TextView mText;
private View mRule1, mRule2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.new_property3);
mText= (TextView)findViewById(R.id.horizontalRule1);
mRule1 = findViewById(R.id.TextView03);
mRule2 = findViewById(R.id.horizontalRule2);
Button submitRating = (Button) findViewById(R.id.submitRatingButton);
submitRating.setOnClickListener(mVisibleListener);
}
OnClickListener mVisibleListener = new OnClickListener() {
public void onClick(View v) {
mText.setVisibility(View.VISIBLE);
mRule1.setVisibility(View.VISIBLE);
mRule2.setVisibility(View.VISIBLE);
}
};
}
我正在更新用户936414的答案
OnClickListener mVisibleListener = new OnClickListener() {
public void onClick(View v) {
if( mText.getVisibility() == View.INVISIBLE )
mText.setVisibility(View.VISIBLE);
else
mText.setVisibility(View.INVISIBLE);
if( mRule1.getVisibility() == View.INVISIBLE )
mRule1.setVisibility(View.VISIBLE);
else
mRule1.setVisibility(View.INVISIBLE);
if( mRule2.getVisibility() == View.INVISIBLE )
mRule2.setVisibility(View.VISIBLE);
else
mRule2.setVisibility(View.INVISIBLE);
}
};
此外,您可能还想尝试使用View.GONE。是的,因为我尝试了另一种方法,以查看它是否有效。对此表示抱歉。但仍然不起作用…仍然没有任何作用。我认为它与OnClick Listener或其他东西有关。当我单击按钮时,它仍然完全没有作用。我也尝试过,但运气不佳 :(我认为问题与按钮有关。当我点击按钮时,什么也没有发生。不确定问题是什么…你能在你点击按钮时放一个日志并检查你的听者是否被呼叫吗?似乎没有什么异常。当我按下按钮时,Logcat没有发现任何东西。这可能是班级的问题吗?我应该这样做吗不使用活动?好的,现在有一个非常基本的问题,即您提供的xml,它是否与您使用setContentView(R.layout.new_property3)设置的xml相同?也就是说,上面提供的xml称为new_property3吗?这个类看起来很好,似乎当你开始这个活动时,屏幕将包含ure xml提供的视图,你应该能够点击按钮并注册。你能提供整个类吗?只是为了确保代码中没有其他内容覆盖abov中的内容e、 这是一个似乎已经解决了的老问题。你的答案补充了什么也不是很清楚;OP在提问之前已经有了这个样板代码。
Button submitRating = (Button) findViewById(R.id.submitRatingButton);
submitRating.setOnClickListener(new View.onClickListener)
{
@Override
public void onClick(View v)
{
//Insert your code here
}
}