You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio中如何将动态添加的EditText的数据传递到另一个Activity

具体实现步骤

步骤1:补充必要的布局配置

首先在你的activity_main.xml中添加Send Data按钮,示例配置:

<Button
    android:id="@+id/btnSendData"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Send Data" />

同时确认你的layout_to_copy.xml中的EditText已经设置了固定id,示例:

<EditText
    android:id="@+id/etDynamic"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

步骤2:在MainActivity中添加Send Data点击逻辑

在MainActivity.java的onCreate方法中添加按钮绑定和点击事件,逻辑是遍历layoutToExpend下所有动态添加的子布局,取出每个EditText的输入内容,存储后通过Intent传给新Activity:

// 绑定Send Data按钮
Button btnSendData = findViewById(R.id.btnSendData);
btnSendData.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        ArrayList<String> inputContents = new ArrayList<>();
        // 遍历layoutToExpend下所有动态添加的子View
        for (int i = 0; i < layoutToExpend.getChildCount(); i++) {
            View childView = layoutToExpend.getChildAt(i);
            // 取出每个动态布局里的EditText
            EditText etDynamic = childView.findViewById(R.id.etDynamic);
            String content = etDynamic.getText().toString().trim();
            inputContents.add(content);
        }
        // 跳转到新Activity并传递数据
        Intent intent = new Intent(MainActivity.this, ShowDataActivity.class);
        intent.putStringArrayListExtra("INPUT_DATA", inputContents);
        startActivity(intent);
    }
});

注意:你之前的代码里添加按钮的id写的是butttonToAdd(多了一个t),如果运行报错先检查拼写是否和xml里的id一致。

步骤3:创建展示数据的新Activity

新建名为ShowDataActivity的Activity,在它的布局activity_show_data.xml中添加用于展示内容的TextView:

<TextView
    android:id="@+id/tvShowContent"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="16dp"
    android:textSize="16sp" />

步骤4:在新Activity中接收并展示数据

在ShowDataActivity.java的onCreate方法中添加如下逻辑:

TextView tvShowContent = findViewById(R.id.tvShowContent);
// 接收MainActivity传递的数据
ArrayList<String> inputData = getIntent().getStringArrayListExtra("INPUT_DATA");
if (inputData != null) {
    // 把所有输入内容拼接成字符串,用换行分隔
    StringBuilder sb = new StringBuilder();
    for (String content : inputData) {
        sb.append(content).append("\n");
    }
    tvShowContent.setText(sb.toString());
}

额外提示:如果是通过Android Studio的新建Activity向导创建的ShowDataActivity,系统会自动在AndroidManifest.xml中完成注册,不需要手动操作。

内容的提问来源于stack exchange,提问作者acpSiam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 22:57:03