AndroidStudio点击第一个界面里不同的3个textview,跳转至第二个界面且在一个textview分别滚动显示不同的txt文件,写代码getResources().
时间: 2023-06-13 22:06:59 浏览: 104
在Android Studio中,可以通过使用Intent在两个Activity之间进行跳转。以下是一个简单的示例,演示如何实现此操作:
1. 首先,在第一个Activity的布局文件中添加三个TextView并设置它们的点击事件。
```xml
<LinearLayout
...>
<TextView
android:id="@+id/text_view_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView 1"
android:textSize="24sp"
android:clickable="true"
android:onClick="onClickTextView1"/>
<TextView
android:id="@+id/text_view_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView 2"
android:textSize="24sp"
android:clickable="true"
android:onClick="onClickTextView2"/>
<TextView
android:id="@+id/text_view_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView 3"
android:textSize="24sp"
android:clickable="true"
android:onClick="onClickTextView3"/>
</LinearLayout>
```
2. 在第一个Activity中实现这三个TextView的点击事件,并在点击事件中使用Intent跳转到第二个Activity。
```java
public class MainActivity extends AppCompatActivity {
...
public void onClickTextView1(View view) {
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("file_name", "file1.txt");
startActivity(intent);
}
public void onClickTextView2(View view) {
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("file_name", "file2.txt");
startActivity(intent);
}
public void onClickTextView3(View view) {
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("file_name", "file3.txt");
startActivity(intent);
}
...
}
```
3. 在第二个Activity的布局文件中添加一个TextView,用于滚动显示文本文件的内容。
```xml
<ScrollView
...>
<TextView
android:id="@+id/text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="18sp"/>
</ScrollView>
```
4. 在第二个Activity中获取从第一个Activity传递过来的文件名,读取对应的文本文件,并将其内容设置到TextView中。
```java
public class SecondActivity extends AppCompatActivity {
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
TextView textView = findViewById(R.id.text_view);
String fileName = getIntent().getStringExtra("file_name");
String text = readTextFile(fileName);
textView.setText(text);
}
private String readTextFile(String fileName) {
BufferedReader reader = null;
StringBuilder text = new StringBuilder();
try {
reader = new BufferedReader(new InputStreamReader(getResources().getAssets().open(fileName), "UTF-8"));
String line;
while ((line = reader.readLine()) != null) {
text.append(line).append("\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return text.toString();
}
...
}
```
在这个示例中,`readTextFile()` 方法用于读取Assets目录下的文本文件,并返回其内容。`getResources().getAssets().open(fileName)` 方法用于打开指定文件名的输入流。输入流可以用于读取文件的内容。在读取文件的过程中,我们使用 `BufferedReader` 和 `StringBuilder` 对文件内容进行了读取和拼接。
这是一个基本的示例,你可以根据自己的需求进行修改和扩展。
阅读全文