2016-05-13 28 views
0

我需要您使用此Inflater的幫助。從Activity3我需要得到Activity1中EditText的內容。Android,LayoutInflater無法正常工作

例如:在Activity1我寫我的名字,電子郵件,ecc。在Activity2中,我選擇了我的生日,在Activity3中我想看到兩者。

所以我在Activity3中使用了LayoutInflater,但是當我將EditText解析爲字符串時,字符串是空的。

下面的代碼:

LayoutInflater inflater = getLayoutInflater(); 
    View v1 = inflater.inflate(R.layout.activity_register1, null); 
    etName = (EditText) v1.findViewById(R.id.etName); 
    etLastName = (EditText) v1.findViewById(R.id.etLastName); 
    etEmail = (EditText) v1.findViewById(R.id.etEmail); 
    etPassword = (EditText) v1.findViewById(R.id.etPassword); 
    actvCity = (AutoCompleteTextView) v1.findViewById(R.id.actvCity); 
    etDescription = (EditText) v1.findViewById(R.id.etDescription); 

    View v2 = inflater.inflate(R.layout.activity_register2, null); 
    datePicker = (DatePicker) v2.findViewById(R.id.datePicker); 
    birthday = new GregorianCalendar(datePicker.getYear(), datePicker.getMonth(), datePicker.getDayOfMonth()); 

    btnRegister = (Button) findViewById(R.id.btnRegister); 

    /** Register Button Click event */ 
    btnRegister.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      String name = etName.getText().toString().trim(); 
      String lastName = etLastName.getText().toString().trim(); 
      String email = etEmail.getText().toString().trim(); 
      String password = etPassword.getText().toString().trim(); 
      String description = etDescription.getText().toString().trim(); 
      String city = actvCity.getText().toString().trim(); 
      String dateString = DateFormat.getDateInstance().format(birthday.getTime()); 

      //if (!name.isEmpty() && !lastName.isEmpty() && !email.isEmpty() && !password.isEmpty() && !city.isEmpty()) 
       Toast.makeText(getApplicationContext(), name, Toast.LENGTH_LONG).show(); 
      //} 

     } 
    }); 

} 

的dateString工作。但所有其他字符串都是空的(「」)。

我該如何解決這個問題或告訴我是否有另一個解決方案。

感謝。

+0

你應該在一個包內的活動之間傳遞數據在startactivity intent裏 – meh

回答

2

您在使用Activity3膨脹inflater.inflate()佈局是什麼您可能Activity1Activity2虛增不同。

僅通過膨脹佈局就無法使用在不同活動中輸入的數據。 您需要在接收活動中使用getIntent(),並在發件人活動端設置intent(用於startActivity(intent))中的所需數據。

所以,你需要你的價值先通過從Activity1Activity2,然後在Activity2獲取數據,然後再次Activity1Activity2合併後的數據發送到Activity3。 有關使用意向進行數據傳輸的更多詳細信息,請參閱this

+0

好吧,我會試試這個方法。謝謝! –