あるアクティビティから別のアクティビティに文字列を渡したいのですが、そのうちの1つで
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);
そして今それは動作します
この方法を試してください
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");
を使用する代わりに、他のアクティビティで
filename = getIntent().getStringExtra("filename");
使ってみてください
filename = b.getString("filename");
それはあなたの問題を解決するはずです。
問題は、pdfView()
では、intent.putExtra("filename", f);
と記述されていることです。
toString()
(つまり、intent.putExtra("filename", f.toString());
に変換してみてください
そしておそらく、明示的なインテントへのBundle
の送信をスキップできます。