当前位置: 首页 > 面试题库 >

单击按钮后如何使具有不可见属性的视图“可见”

诸葛砚文
2023-03-14
问题内容

我有几个具有android:visibility =“
invisible”属性的视图,文本视图和一个按钮。我的目标是单击位于这些“不可见”窗口小部件上方的按钮,以使这些窗口小部件变得可见。我创建了另一个名为“
VisibilityActivity.java”的Java类,并尝试了以下方法,但是由于某种原因,当我运行该应用程序时,该按钮没有执行任何操作。我不知道自己缺少什么。

这是代码:

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>

谢谢。帮助将不胜感激!


问题答案:

我正在更新 user936414 的答案。

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。



 类似资料:
  • 问题内容: 以下是我的javascript代码,我曾经在单击时显示。 再次单击该如何隐藏?然后单击它,是否应该再次可见? 问题答案: 如果您对jQuery解决方案感兴趣: 这是HTML 这是jQuery脚本 您可以在这里看到它的工作方式: 如果您不知道如何使用jQuery,则必须使用以下代码来加载库: 然后使用此行开始: 因此,在这种情况下,最终代码如下:

  • 所以假设我有一个“开”和一个“关”按钮。当我按下打开按钮时,我希望打开按钮隐藏自己,关闭按钮显示出来,反之亦然。 一个人怎么能这么做?

  • 问题内容: 如何在Java中创建JButton,使其不可见但可单击? 使按钮不可见但不可单击,是否有任何方法使按钮不可见但可单击? 我试着做: 但这也不起作用。我要这样做是因为我想有一个带有图像的按钮,如果将不可见的JButton放在图像上,则单击图像时该按钮将响应,即不可见按钮。 问题答案: 我认为您的意思是透明的,而不是看不见的。 这将使单击的按钮不可见,即透明: 这可以回答您的问题,但是如果

  • 问题内容: 我无法相信这行不通。 我有一个JList。我将其渲染器设置如下。基本上是一个带有两个标签和一个按钮的JPanel。 这是我的TopBottomCellRenderer。 该列表可正确呈现,但不可单击。单击它没有任何作用。 我该如何工作? 问题答案: 渲染器只是在组件上绘制的“橡皮图章”。它们不是实时的交互式组件。 请参阅以下答案:JList中的JButton以获得一种可能的解决方案。实

  • 问题内容: 您好,我正在尝试制作一个不可见的按钮(仍可操作且可单击),因为我的按钮样式嵌入在背景中,我不想切成薄片,而是从一开始就做所有。 因此,我只想制作一个按钮,将其放在应该放置按钮的背景部分上,使其不可见,以便可以看到并单击背景按钮图像。 有什么建议么?非常感谢你! 问题答案: 您必须对元素使用以下属性以使其透明。 没有文字的透明按钮 带有可见文本的透明按钮 并使用绝对值定位元素。 例如 您

  • 嘿,对不起,我的英语不好。。。 我的 ListFragment 中有一个 ListView,带有自定义适配器。在我的布局中,我有一个按钮。按钮和整个项目/行是可单击的。我用为ImageButton实现了这一点。正如您在 getView() 方法中看到的,我捕获了一个单击操作。 这是我的布局: 现在我想知道你是否可以在不选择整个视图的情况下点击按钮,但仍然注意到背景上的点击(我知道我在列表视图中的位