10

あるアクティビティから別のアクティビティに文字列を渡したいのですが、そのうちの1つで私が書きました

public void 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);
    } 

ただし、ファイル名は常に「null」として返されます。これを解決するには?前もって感謝します。//////////////////

として作りました

   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 に答える