当前位置: 首页 > 知识库问答 >
问题:

Android,layoutflater不工作

年光明
2023-03-14

我需要你帮我拿这个充气机。从Activity3中,我需要获得Activity1中EditText中的内容。

例:在Activity1中,我写我的名字、电子邮件、ECC。在活动2中,我选择我的生日,在活动3中,我想看到两者。

所以我在Activity3中使用了LayoutInflater,但是当我将EditText解析为string时,字符串是空的。

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

        }
    });

}

谢了。

共有1个答案

饶曦之
2023-03-14

activity3中使用inflater.inflate()膨胀的布局与在activity1activity2中膨胀的布局不同。

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

因此,您需要首先将值从Activity1传递到Activity2,然后在Activity2中获取数据,然后再次将Activity1Activity2的组合数据发送到Activity3。有关使用意图进行数据传输的更多细节,请参见此链接。

 类似资料:
  • 这是负责将片段添加到后堆栈的函数: 当我点击后退按钮时,最后一个片段没有被加载(什么也没有发生)。 知道是什么导致的吗? 编辑:FragmentManager日志。 http://pastebin.com/mYnVdkLG 在我看来,我的应用程序似乎在两次保存第二个视图,而不是先保存第一个视图,然后再保存第二个视图。

  • 我想从网站获取一个字符串,并将其转换为数组。它在eclipse中工作,但如果我想在Android应用程序中使用它,它就不起作用了。我知道,这一定是一个愚蠢的错误,但我不知道它在哪里。 InternetHandler: 主要的 显示 它总是返回错误数组,但idk为什么:C logcat: HttpEngineering. sendRequest(HttpEngineering. java: 239)

  • Attachtoroot:膨胀的层次结构是否应该附加到根参数?如果为false,则root仅用于为XML中的root视图创建正确的LayoutParams子类。 有人能更详细地解释一下吗,特别是根视图是什么,并展示一个和值之间行为变化的示例吗?

  • MediaPlayer中的seekTo()方法有问题。看来根本不管用!我跟踪了关于这个问题的其他线索,并尝试了不同的解决方案,但seekTo()仍然什么也没做!下面是我的代码: system.out.println()显示以下输出: null

  • 在为Android开发的Eclipse Java中······ 正如您所看到的,我根本无法获得应用程序或基本上下文。试图在没有它们的情况下获得文件目录是行不通的。我到底如何访问我的文件目录?

  • 我想创建应用程序,它重新路由数据包。我使用vpnservice(因为不需要根电话),使用toyVpn和这个代码http://www.theGeekstuff.com/2014/06/android-vpn-service/但是问题是在这行DatagramChannel tunnel=DatagramChannel.open();此行抛出异常。这是我的密码 这是日志: null null 我还有一个