我的滚动视图中有三个段落,在三个按钮之一上发生 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)
其他观点依此类推
炎炎设计
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) ; }
添加回答
举报
0/150
提交
取消