我想将一个字符串从一个活动传递到另一个活动,其中一个是我写的
public void pdfView(File 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);
}
但文件名始终返回为“null”。 怎么解决这个? 提前致谢。 //////////////////
我把它作为
Intent intent;
Bundle b = new Bundle();
b.putString("filename", f.toString());
intent = new Intent(getApplicationContext(),NewPdfActivity.class);
intent.putExtras(b);
startActivity(intent);
现在可行了
答案 0 :(得分:21)
试试这种方式
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");
答案 1 :(得分:1)
在您的其他活动中,而不是使用
filename = getIntent().getStringExtra("filename");
尝试使用
filename = b.getString("filename");
这应该可以解决你的问题。
答案 2 :(得分:0)
问题是,在pdfView()
中,它写为intent.putExtra("filename", f);
。
尝试将其转换为toString()
(即intent.putExtra("filename", f.toString());
也许您可以跳过将Bundle
发送到明确意图的情况。