私はアンドロイドアプリの書き込みで問題に遭遇しました。アンドロイド:渡しバンドルがオブジェクトのタイプを変更しました
活動1は次のようになります。
// other code here:
bundle.putString("MyKey" , My_Large_String_containing_HTML);
Log.d(tag + " - TEST" , "tmp CLASS:" + bundle.getString("MyKey").getClass());
Log.d(tag + " - TEST" , "tmp FETCHED:" + bundle.getString("MyKey"));
// make new intent, stuff it with bundle
Intent Activity2Intent = new Intent(this.getApplicationContext(), Activity2.class);
Activity2Intent.putExtras(bundle);
Log.i(tag, "Bundle stuffed.. preparing to make a new screen...");
startActivityForResult(Activity2Intent, 0);
活動2は次のようになります。
// other set up code
bundle = this.getIntent().getExtras();
My_Large_String_containing_HTML = bundle.getString("MyKey");
/* throws an exception above
*
* WARN/Bundle(976): Key description expected String but value was a [Ljava.lang.String;. The default value <null> was returned.
*
* WARN/Bundle(976): Attempt to cast generated internal exception:
* WARN/Bundle(976): java.lang.ClassCastException: [Ljava.lang.String;
* WARN/Bundle(976): at android.os.Bundle.getString(Bundle.java:1040)
*/
TLDR。私は文字列を持っていて、HTML(通常は)が入っています。私はそれを第二の活動で利用できるようにする必要があります。私はそれを束に入れました。インテントにバンドルを追加する。意図を消し、バンドルを手に入れよう。 私はバンドルから文字列を取得しようとしますが、配列が得られないという例外があります。/
それでは、私の問題だと私はそれをどのように修正すればよい:
は、私は、配列を使って何をやったことがありませんか?エキストラを取得するために、次に
Activity2Intent.putExtra("MyKey", My_Large_String_containing_HTML);
、あなたが意図から、バンドルをつかむために持っている:あなたはちょうどまっすぐ意図にエキストラを入れて、この
Activity2Intent.putExtra("MyKey" , My_Large_String_containing_HTML);
startActivity(Activity2Intent);
//To receive from another Activity
Bundle bundle = getIntent().getExtras();
String result=bundle.getString("mykey");
あなたのコーディングスタイル/フォーマットは非常に非標準的であり、したがって悪いです。してください修正してください:( – binnyb