根据之前按下的按钮读取不同的 .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 的初始化。所以请确保它已初始化,否则会崩溃。