猿问

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

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


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


因此,我仅为第一段创建了一个私有文本视图常量。但是在我传递切换活动的意图后,我还尝试将该包上的视图变为可见。


我已经包含了我的 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">


        </LinearLayout>

    </ScrollView>


</androidx.constraintlayout.widget.ConstraintLayout>

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


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


郎朗坤
浏览 110回答 3
3回答

守着一只汪

这三个视图似乎都在已启动的活动中。因此您无法更改它们的可见性,因为它们尚未创建。在开始活动之前添加此内容&nbsp;intent.putExtra("passageNum", 1)&nbsp;然后调用startActivity(intent)在 PassageAactivity onCreate 中执行以下操作:If&nbsp;(getIntent().hasExtra("passageNum")&nbsp;&&&nbsp;getIntent().getExtras().getInt("passageNum")&nbsp;==&nbsp;1) &nbsp;&nbsp;&nbsp;&nbsp;passage1.setVisibility(View.VISIBLE)其他观点依此类推

炎炎设计

使用View.VISIBLE大写的 V,它是 View 类中的整数常量。从方法中删除 View 参数launchPassageOne:public&nbsp;void&nbsp;launchPassageOne()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;passage1.setVisibility(View.VISIBLE); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Intent&nbsp;intent&nbsp;=&nbsp;new&nbsp;Intent(this,&nbsp;PassageActivity.class); &nbsp;&nbsp;&nbsp;&nbsp;startActivity(intent)&nbsp;; }

FFIVE

passage1.setVisibility(View.VISIBLE)
随时随地看视频慕课网APP

相关分类

Java
我要回答