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
相关产品推荐
相关产品推荐

