【问题标题】:Android, LayoutInflater not workingAndroid,LayoutInflater 不工作
【发布时间】:2016-09-09 22:53:21
【问题描述】:

我需要你的帮助来处理这个充气机。我需要从 Activity3 中获取 Activity1 的 EditText 中的内容。

例如:在 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 有效。但是所有其他字符串都是空的(“”)。

我该如何解决这个问题或告诉我是否有其他解决方案来解决这个问题。

谢谢。

【问题讨论】:

  • 您应该在 startactivity 意图内的捆绑包中的活动之间传递数据

标签: android layout-inflater


【解决方案1】:

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

您不能仅通过扩展布局来使用在不同活动中输入的数据。 您需要在接收活动中使用getIntent(),并在发送活动一侧的intent(用于startActivity(intent))中设置所需的数据。

因此,您需要先将值从Activity1 传递到Activity2,然后获取Activity2 中的数据,然后再次将Activity1Activity2 的组合数据发送到Activity3。 有关使用 Intent 进行数据传输的更多详细信息,请查看this

【讨论】:

  • 好的,我试试这个方法。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-29
  • 2013-06-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多