java - 如何在 onClick 事件和 Activity 更改后将 textView 设置为可见?

标签 java android textview scrollview visibility

我的 ScrollView 中有三个段落,在三个按钮之一上发生 onclick 事件后,每个段落都需要变得可见。

我目前已将它们设置为全部不可见。由于我无法让它发挥作用,我只是在其中一个段落中进行尝试。

因此,我仅为第一段创建了一个私有(private) TextView 常量。但是在我传递切换 Activity 的 Intent 后,我还尝试将该包上的 View 变为可见。

我已经包含了我的 MainActivity.java 和我用来设置不可见的 xml 文件。

package com.example.threebuttons;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    private TextView passage1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        passage1 = findViewById(R.id.passage_1);
    }

    public void launchPassageOne(View view) {
        passage1.setVisibility(view.VISIBLE);
        Intent intent = new Intent(this, PassageActivity.class);
        startActivity(intent) ;
    }

    public void launchPassageTwo(View view) {
        Intent intent = new Intent(this, PassageActivity.class);
        startActivity(intent) ;
    }

    public void launchPassageThree(View view) {
        Intent intent = new Intent(this, PassageActivity.class);
        startActivity(intent) ;
    }
}

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".PassageActivity">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <EditText
                android:id="@+id/passage_1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ems="10"
                android:gravity="start|top"
                android:inputType="textMultiLine"
                android:text="@string/passage1"
                android:visibility="invisible"/>

            <EditText
                android:id="@+id/passage_2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ems="10"
                android:gravity="start|top"
                android:inputType="textMultiLine"
                android:text="@string/passage2"
                android:visibility="invisible"/>

            <EditText
                android:id="@+id/passage_3"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:ems="10"
                android:gravity="start|top"
                android:inputType="textMultiLine"
                android:text="@string/passage3"
                android:visibility="invisible"/>

        </LinearLayout>
    </ScrollView>

</androidx.constraintlayout.widget.ConstraintLayout>

我的程序崩溃了。而且我找不到任何错误消息。

每当我想要更改 Activity 时,如何才能使包可见? 我希望三个段落对于各自的按钮可见,然后在按下后退按钮时变为不可见。

最佳答案

这三个 View 似乎都在已启动的 Activity 中。因此您无法更改它们的可见性,因为它们尚未创建。

在开始 Activity 之前添加此内容 intent.putExtra("passageNum", 1) 然后调用startActivity(intent)

在 PassageAactivity onCreate 中执行以下操作:

If (getIntent().hasExtra("passageNum") && getIntent().getExtras().getInt("passageNum") == 1)
    passage1.setVisibility(View.VISIBLE)

其他 View 依此类推

关于java - 如何在 onClick 事件和 Activity 更改后将 textView 设置为可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58018816/

相关文章:

java - 图书馆 |如何创建小 map ?

java - 当指定仅使用 wifi 时,ConnectivityManager Network 为 null

android - 访问android媒体目录?

android - 如何使 TextView 具有渐变边缘?

android - "android.widget.LinearLayout"无法在 ListView onItemClick 中转换为 "android.widget.TextView"

java - 如何让 Jackson 序列化器更加 DRY?

java - Glassfish 安全 - jdbcRealm : How to configure login with SHA-256 digest

java - build 象鸟时出错

android - Symfony2 基本 http 身份验证,适用于 curl 但不适用于 Android

android - 在 Android 中以编程方式添加和删除 TextView