10

我想将一个字符串从一个活动传递到另一个活动,我在其中一个活动中写道

公共无效pdfView(文件f){

 // f is: /data/data/com.example.iktabClasses/files/fileName.pdf

 Intent intent = new Intent(getApplicationContext(),NewPdfActivity.class);

 intent.putExtra("filename", f);

    startActivity(intent);

}

在另一个活动中我写道:

  Bundle b=getIntent().getExtras();

        if (b != null) {

        filename = getIntent().getStringExtra("filename");

       System.out.println("filename: "+filename);
    } 

但文件名始终返回为“空”。如何解决这个问题?提前致谢。/////////////////

我把它做成

   Intent intent;
    Bundle b = new Bundle();

    b.putString("filename", f.toString());

    intent = new Intent(getApplicationContext(),NewPdfActivity.class);

    intent.putExtras(b);

    startActivity(intent);

现在它可以工作了

4

3 回答 3

23

试试这个方法

Intent intent = new Intent(first.this, second.class);

Bundle bundle = new Bundle();
bundle.putInt("index", index);

intent.putExtras(bundle);startActivity(intent);

然后得到它

Bundle b = getIntent().getExtras();
int index = b.getInt("index");
于 2013-04-08T14:04:21.390 回答
1

在您的其他活动中,而不是使用

filename = getIntent().getStringExtra("filename");

尝试使用

filename = b.getString("filename");

那应该可以解决您的问题。

于 2013-04-08T14:04:14.950 回答
0

问题是,在 中pdfView(),它被写为intent.putExtra("filename", f);

尝试将其转换为toString()(即intent.putExtra("filename", f.toString());

也许,您可以跳过发送Bundle到显式意图。

于 2019-04-26T19:19:03.190 回答