You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android应用:随机生成结果无法显示在TextView的问题求助

问题分析与解决方案

你的核心问题是误用了控制台程序的main函数——Android应用的运行逻辑和标准控制台程序完全不同,你写的main函数只会在单独运行时输出到控制台,和你的Activity界面没有任何关联。下面是针对你的需求的具体修改步骤:


1. 移除无用的main函数

Android应用的入口由系统自动管理,不需要手动编写main函数,直接删掉这段代码即可。

2. 准备第二个Activity的布局

假设你的第二个Activity名为ResultActivity,先在res/layout/activity_result.xml中添加生成按钮和用于显示结果的TextView:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">

    <Button
        android:id="@+id/generate_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="生成随机任务"/>

    <TextView
        android:id="@+id/result_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:textSize="18sp"/>
</LinearLayout>

3. 编写第二个Activity的逻辑

在ResultActivity.kt中,把随机生成逻辑绑定到按钮点击事件,直接更新TextView内容:

import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import kotlin.random.Random

class ResultActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_result)

        // 获取界面控件
        val generateBtn = findViewById<Button>(R.id.generate_btn)
        val resultText = findViewById<TextView>(R.id.result_text)

        // 定义任务给予者列表
        val questGivers = arrayOf("John", "notJohn")

        // 设置按钮点击事件
        generateBtn.setOnClickListener {
            // 生成随机结果
            val randomGiver = questGivers[Random.nextInt(questGivers.size)]
            // 更新TextView显示内容
            resultText.text = "任务给予者: $randomGiver"

            // 如果需要生成多个结果并以列表形式展示,可以这样写:
            // val resultList = mutableListOf<String>()
            // repeat(3) {
            //     resultList.add("第${it+1}个任务: ${questGivers[Random.nextInt(questGivers.size)]}")
            // }
            // resultText.text = resultList.joinToString("\n")
        }
    }
}

4. 确保主Activity跳转逻辑正确

在主Activity中,确保跳转到ResultActivity的代码正常工作:

import android.content.Intent
import android.widget.Button
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        findViewById<Button>(R.id.go_to_result_btn).setOnClickListener {
            startActivity(Intent(this, ResultActivity::class.java))
        }
    }
}

5. 检查Manifest注册

确保ResultActivity已经在AndroidManifest.xml中注册(Android Studio创建Activity时会自动添加,可核对):

<activity android:name=".ResultActivity"/>

内容的提问来源于stack exchange,提问作者jack kelley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 20:23:18