为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

郎朗坤 2023-08-09 16:17:41
我的滚动视图中有三个段落,在三个按钮之一上发生 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>我的程序崩溃了。而且我找不到任何错误消息。每当我想要更改活动时,如何使包可见?我希望三个段落对于各自的按钮可见,然后在按下后退按钮时变为不可见。
查看完整描述

3 回答

?
守着一只汪

TA贡献1872条经验 获得超3个赞

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

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

在 PassageAactivity onCreate 中执行以下操作:

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

其他观点依此类推


查看完整回答
反对 回复 2023-08-09
?
炎炎设计

TA贡献1808条经验 获得超4个赞

使用View.VISIBLE大写的 V,它是 View 类中的整数常量。从方法中删除 View 参数launchPassageOne

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


查看完整回答
反对 回复 2023-08-09
?
FFIVE

TA贡献1797条经验 获得超6个赞

passage1.setVisibility(View.VISIBLE)
查看完整回答
反对 回复 2023-08-09
  • 3 回答
  • 0 关注
  • 108 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信