我是Android和Java的新手。我試圖捕獲一個活動中的值,並使用一個包將它們傳遞給另一個活動。該包已創建好。但是,當我嘗試提取第二個活動中的值時,我得到空值。我究竟做錯了什麼? 主要活動Android接收捆綁文本返回空
//Create the bundle
Bundle mybundle = new Bundle();
//Add your data to bundle
mybundle.putString("One",textOne);
mybundle.putString("Two",textTwo);
//Add the bundle to the intent
myIntent.putExtras(mybundle);
//Fire the second activity
startActivity(startIntent);
這是獲取文本的第二個活動
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle mybundle = getIntent().getExtras();
String myText1 = mybundle.getString("One");
String myText2 = mybundle.getString("Two");
確定的代碼。我將分享我的所有代碼。我正在嘗試一個非常簡單的程序來學習android。在第一個屏幕上輸入兩個數字並加在一起。在第二個屏幕上使用一個包將第一個屏幕的值傳遞給第二個屏幕。
主要活動
public class MainActivity extends AppCompatActivity {
EditText editNum1;
EditText editNum2;
Button addbutton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editNum1 = (EditText) findViewById(R.id.editNum1);
editNum2 = (EditText) findViewById(R.id.editNum2);
Button addbutton = (Button) findViewById(R.id.button);
addbutton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
Intent myIntent = new Intent(MainActivity.this,
AddActivity.class);
final String textOne = editNum1.getText().toString().trim();
final String textTwo = editNum2.getText().toString().trim();
//Create the bundle
Bundle mybundle = new Bundle();
//Add your data to bundle
mybundle.putString("One",textOne);
mybundle.putString("Two",textTwo);
//Add the bundle to the intent
myIntent.putExtras(mybundle);
//Fire the second activity
startActivity(myIntent);
OK現在的AddActivity畫面我已經插入一些調試行的代碼不能工作或者
public class AddActivity extends AppCompatActivity {
Number gNum1;
Number gNum2;
Number total;
String myText1;
String myText2;
TextView textView;
TextView textView2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle mybundle = getIntent().getExtras();
if (mybundle != null) {
String myText1 = mybundle.getString("One");
String myText2 = mybundle.getString("Two");
}
textView = (TextView)findViewById(R.id.textView);
if (myText1 != null) {
textView.setText(myText1);
}else {
textView.setText("FAILED");
}
textView2 = (TextView)findViewById(R.id.textView2);
if (myText1 != null) {
textView2.setText(myText1);
}else{
textView2.setText("FAILED");
您的代碼沒問題。也許textOne或textTwo爲空。你如何得到它? –
可以請你把你的意圖代碼放在這裏。因爲你使用'startExtras(mybundle)'''發送數據'開始意圖'startActivity(startIntent)'。 – UltimateDevil
您正在向myIntent添加綁定,並且您傳遞了不同的意圖(startIntent),請您添加完整的代碼。 – livemaker