2016-06-12 80 views
1

我正在使用mysql來檢索一個代碼到我的主要活動,它存儲爲一個字符串。這有效,但是當我嘗試將它傳遞給另一個活動時,它不會工作。我可能是錯的,但是我會像傳統的c#變量那樣通過它。如何在2個活動之間傳遞變量?

將變量(字符串,int)從一個活動傳遞給另一個的正確方法是什麼?

回答

3

你做這種方式,同時通過:

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

在檢索:

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

Xamarin docs

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

,並檢索從第二活動的數據:

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

Bundle對象是一個選項太

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> 
相關問題