AndroidStudio点击第一个界面里不同的3个textview,跳转至第二个界面且在一个textview分别滚动显示不同的txt文件,使用getResources()。写代码
时间: 2023-06-13 21:06:37 浏览: 86
首先,在res/layout目录下创建两个xml文件,分别命名为activity_main.xml和activity_second.xml。其中,activity_main.xml是第一个界面,包含3个TextView,用于点击跳转至第二个界面;activity_second.xml是第二个界面,包含一个TextView,用于滚动显示不同的txt文件。
activity_main.xml文件内容如下:
```
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">
<TextView
android:id="@+id/textview1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView 1"
android:textSize="24sp"
android:clickable="true"
android:focusable="true"
android:onClick="openSecondActivity"/>
<TextView
android:id="@+id/textview2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView 2"
android:textSize="24sp"
android:clickable="true"
android:focusable="true"
android:onClick="openSecondActivity"/>
<TextView
android:id="@+id/textview3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView 3"
android:textSize="24sp"
android:clickable="true"
android:focusable="true"
android:onClick="openSecondActivity"/>
</LinearLayout>
```
注意,TextView需要设置clickable和focusable属性为true,以便能够接收点击事件,并且设置onClick属性为openSecondActivity,用于跳转至第二个界面。
接下来,创建activity_second.xml文件,内容如下:
```
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textview_scroll"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="18sp"/>
</ScrollView>
```
注意,这里我们使用了ScrollView和TextView组合,以便能够滚动显示文本内容。
最后,在MainActivity.java中实现openSecondActivity方法,代码如下:
```
public void openSecondActivity(View view) {
Intent intent = new Intent(this, SecondActivity.class);
switch (view.getId()) {
case R.id.textview1:
intent.putExtra("file_name", "file1.txt");
break;
case R.id.textview2:
intent.putExtra("file_name", "file2.txt");
break;
case R.id.textview3:
intent.putExtra("file_name", "file3.txt");
break;
}
startActivity(intent);
}
```
在这个方法中,我们根据点击的TextView的id来判断应该打开哪个txt文件,并且使用Intent传递文件名参数给SecondActivity。
最后,在SecondActivity.java中获取传递的文件名,并使用getResources()方法读取文件内容并设置给TextView,代码如下:
```
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
TextView textView = findViewById(R.id.textview_scroll);
String fileName = getIntent().getStringExtra("file_name");
int resId = getResources().getIdentifier(fileName, "raw", getPackageName());
InputStream inputStream = getResources().openRawResource(resId);
try {
byte[] buffer = new byte[inputStream.available()];
inputStream.read(buffer);
String text = new String(buffer);
textView.setText(text);
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在这个代码中,我们使用getResources().getIdentifier()方法根据文件名获取对应的资源id,然后使用getResources().openRawResource()方法获取文件输入流并读取文件内容,最后将内容设置给TextView即可。
阅读全文