Android,LayoutInflater不工作

11 浏览
0 Comments

Android,LayoutInflater不工作

我需要你帮助我解决这个Inflater的问题。我需要从Activity3中获取Activity1中EditText中的内容。\n例如:在Activity1中我输入了我的名字、邮箱等信息。在Activity2中我选择了我的生日,然后在Activity3中我想要看到这两个信息。\n所以我在Activity3中使用了LayoutInflater,但是当我将EditText解析成字符串时,字符串是空的。\n以下是代码:\n

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();
        //}
    }
});
}

\ndateString能够正常工作,但是所有其他的字符串都是空的(\"\")。\n我该如何修复这个问题或者告诉我是否有其他解决方案。\n谢谢。

0
0 Comments

Activity3中使用inflater.inflate()膨胀的布局与您在Activity1Activity2中膨胀的布局不同。

您不能仅通过膨胀布局来使用在不同活动中输入的数据。

您需要在接收活动中使用getIntent(),并在发送活动的一侧将所需数据设置在intent(在startActivity(intent)中使用)中。

因此,您需要先从Activity1传递值到Activity2,然后在Activity2中获取数据,然后再将Activity1Activity2的组合数据发送到Activity3

有关使用意图进行数据传输的更多详细信息,请查看这个

好的,我会尝试这种方式。谢谢!

0