点击TextView时在新Activity读取.txt文件的实现方案咨询
实现点击TextView跳转新Activity显示TXT内容
一、修改当前Activity(Dusterlist)的代码
在点击事件中读取完文件内容后,通过Intent将内容传递给SecondActivity,替换原来直接在当前页面显示的逻辑:
package com.example.coding import android.content.Intent import android.os.Bundle import android.view.View import android.widget.TextView import androidx.appcompat.app.AppCompatActivity import java.io.IOException class Dusterlist : AppCompatActivity() { // 定义统一的内容传递标识 private val EXTRA_FILE_CONTENT = "file_content" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_dacialist) val txt7 = findViewById<TextView>(R.id.textView7) txt7.setOnClickListener { try { // 读取assets目录下的文件内容 val inputStream = assets.open("mytextfile.txt") val size = inputStream.available() val buffer = ByteArray(size) inputStream.read(buffer) val fileContent = String(buffer) // 创建跳转Intent并传递内容 val intent = Intent(this, SecondActivity::class.java) intent.putExtra(EXTRA_FILE_CONTENT, fileContent) startActivity(intent) } catch (e: IOException) { e.printStackTrace() } } } }
二、创建并配置SecondActivity
1. 新建布局文件(activity_second.xml)
添加用于展示内容的TextView:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="16dp"> <TextView android:id="@+id/tv_file_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="16sp"/> </LinearLayout>
2. 编写SecondActivity代码
接收传递的内容并显示:
package com.example.coding import android.os.Bundle import android.widget.TextView import androidx.appcompat.app.AppCompatActivity class SecondActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_second) val tvContent = findViewById<TextView>(R.id.tv_file_content) // 获取传递的文件内容,为空时显示默认提示 val fileContent = intent.getStringExtra(Dusterlist.EXTRA_FILE_CONTENT) tvContent.text = fileContent ?: "文件内容读取失败" } }
3. 在AndroidManifest.xml注册SecondActivity
确保Activity已被系统识别:
<activity android:name=".SecondActivity" android:exported="false"/>
内容的提问来源于stack exchange,提问作者Yaya38
相关产品推荐
相关产品推荐

