根据之前按下的按钮读取不同的 .txt activity
Read a different .txt depending on what button is pressed in previous activity
我正在尝试在第二个 activity TextView 中读取不同的 .txt 文件(在原始文件夹中),具体取决于 MainActivity
中按下的按钮(上一个 activity), 但它不起作用。我正在使用 .putextras
方法,这是我的 MainActivity:
代码
ImageButton but1=(ImageButton) findViewById(R.id.imageButton2);
but1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent int1=new Intent(MainActivity.this,SecondActivity.class);
int1.putExtra("Thistext", "textnumberone");
startActivity(int1);
finish();
}
});
ImageButton but2(ImageButton) findViewById(R.id.imageButton3);
but2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent int2=new Intent(MainActivity.this,SecondActivity.class);
int2.putExtra("Thistext", "textnumbertwo");
startActivity(int2);
finish();
}
});
这是我的带有 Bundle 的 SecondActivity 代码..
Bundle extradata = getIntent().getExtras();
TextView tv = (TextView)findViewById(R.id.firsttextView);
vitautori.setText(extradata.getString("Thistext"));
if (extradata.equals("textnumberone")) {
String texttxt = "";
StringBuffer sbuffer = new StringBuffer();
InputStream is = this.getResources().openRawResource(R.raw.file);
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
try {
while ((texttxt = reader.readLine()) !=null){
sbuffer.append(texttxt + "n");
}
tv.setText(sbuffer);
is.close();
}catch(Exception e) {
e.printStackTrace();
}
}
}
}
在创建Intent
时(当然是两个地方),我建议您尝试将类型设置为文本:
int1.setType("text/plain");
看看这是否有帮助。
您当前正在将 Bundle 数据与
中的字符串进行比较
if (extradata.equals("textnumberone"))
这行不通,您必须先提取 String 数据。试试这个:
Bundle extradata = getIntent().getExtras();
String textString = extradata.getString("Thistext");
if (textString.equals("textnumberone")) {
另一件事:
您将 Bundle 中的 String 设置为(我想)TextView in
vitautori.setText(extradata.getString("Thistext"));
但我在任何地方都看不到 vitautori
的初始化。所以请确保它已初始化,否则会崩溃。
我正在尝试在第二个 activity TextView 中读取不同的 .txt 文件(在原始文件夹中),具体取决于 MainActivity
中按下的按钮(上一个 activity), 但它不起作用。我正在使用 .putextras
方法,这是我的 MainActivity:
ImageButton but1=(ImageButton) findViewById(R.id.imageButton2);
but1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent int1=new Intent(MainActivity.this,SecondActivity.class);
int1.putExtra("Thistext", "textnumberone");
startActivity(int1);
finish();
}
});
ImageButton but2(ImageButton) findViewById(R.id.imageButton3);
but2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent int2=new Intent(MainActivity.this,SecondActivity.class);
int2.putExtra("Thistext", "textnumbertwo");
startActivity(int2);
finish();
}
});
这是我的带有 Bundle 的 SecondActivity 代码..
Bundle extradata = getIntent().getExtras();
TextView tv = (TextView)findViewById(R.id.firsttextView);
vitautori.setText(extradata.getString("Thistext"));
if (extradata.equals("textnumberone")) {
String texttxt = "";
StringBuffer sbuffer = new StringBuffer();
InputStream is = this.getResources().openRawResource(R.raw.file);
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
try {
while ((texttxt = reader.readLine()) !=null){
sbuffer.append(texttxt + "n");
}
tv.setText(sbuffer);
is.close();
}catch(Exception e) {
e.printStackTrace();
}
}
}
}
在创建Intent
时(当然是两个地方),我建议您尝试将类型设置为文本:
int1.setType("text/plain");
看看这是否有帮助。
您当前正在将 Bundle 数据与
中的字符串进行比较if (extradata.equals("textnumberone"))
这行不通,您必须先提取 String 数据。试试这个:
Bundle extradata = getIntent().getExtras();
String textString = extradata.getString("Thistext");
if (textString.equals("textnumberone")) {
另一件事: 您将 Bundle 中的 String 设置为(我想)TextView in
vitautori.setText(extradata.getString("Thistext"));
但我在任何地方都看不到 vitautori
的初始化。所以请确保它已初始化,否则会崩溃。