2016-06-12 4 views
1

私はmysqlを使ってメインアクティビティにコードを取得しています。メインアクティビティは文字列として格納されています。これは動作しますが、別のアクティビティに渡そうとすると動作しません。私は間違っているかもしれませんが、通常のC#変数と同じように渡しています。2つのアクティビティ間で変数を渡すにはどうすればよいですか?

変数(文字列、int)をあるアクティビティから別のアクティビティに渡す正しい方法は何ですか? Xamarin docsから

答えて

3

あなたは、このようにそれを行います:

string text = Intent.GetStringExtra ("MyString"); 
//you get 
//This is a string 
int number = Intent.GetIntExtra ("MyInt"); 
//you get 
//20 
2

var activity2 = new Intent (this, typeof(Activity2)); 
    activity2.PutExtra ("MyData", "Data from Activity1"); 
    StartActivity (activity2); 

と第二の活動からデータを取得する:

var intent = new Intent (this, typeof(MyActivity)); 
intent.PutExtra("MyString", "This is a string"); 
intent.PutExtra("MyInt", 20); 
StartActivity (intent); 

を取得中:通過する間

string text = Intent.GetStringExtra ("MyData") 
0

バンドルオブジェクトが

public class NextActivity extends AppCompatActivity{ 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
Bundle intentBundle = getIntent().getExtras(); 
String strResult = intentBundle.getString("strA"); 
} 
} 
1

あまりにもオプションであるFirstClass.java

Intent intent = new Intent (FirstClass.this, SecondClass.class); 
intent.putExtra("StringData", "Stringvalue"); 
intent.putExtra("intData", 10); 
startActivity(intent); 
finish(); // this line is optional. If you want to destroy FirstClass, add this line. 

SecondClass.java

のonCreateメソッド内でこの行を追加します。

Intent i = getIntent(); 
    if(i != null){ 
     String StringData = i.getStringExtra("name"); 
     int intData = i.getIntExtra("intData", 0); // second parameter is the default value. if unable to get the value of "intData", default value will parse. 
    } 

マニフェストファイル

マニフェストファイルにこれらの行を追加します。

<activity android:name=".FirstClass"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity android:name=".SecondClass"> 
    </activity> 
関連する問題