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

Android开发:统计已填写EditText数量并传值至另一Activity

解决EditText数据统计与跨Activity传递问题

我来帮你搞定这个需求!咱们分两步走:先统计已填写的EditText内容,再把统计结果和数据传递到下一个Activity。

第一步:在当前Activity统计并收集数据

首先,我们可以把20个EditText的引用存到一个数组里,这样遍历起来更方便。然后给提交按钮添加点击事件,在事件里完成统计和数据收集:

import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;
import java.util.List;

public class SelectActivity extends AppCompatActivity {
    private EditText[] editTexts;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_select);

        // 初始化20个EditText的引用(根据你实际的id调整命名)
        editTexts = new EditText[20];
        editTexts[0] = findViewById(R.id.edit_text_1);
        editTexts[1] = findViewById(R.id.edit_text_2);
        // ... 依次初始化剩下的18个EditText,直到editTexts[19]

        Button submit = findViewById(R.id.your_submit_button_id);
        submit.setOnClickListener(v -> {
            List<String> filledContent = new ArrayList<>();

            // 遍历所有EditText,筛选已填写的内容
            for (EditText et : editTexts) {
                String input = et.getText().toString().trim();
                // 排除只输入空格的情况
                if (!input.isEmpty()) {
                    filledContent.add(input);
                }
            }

            // 获取已填写的数量
            int filledCount = filledContent.size();

            // 准备跳转到下一个Activity
            Intent intent = new Intent(SelectActivity.this, TargetActivity.class);
            // 传递已填写数量(int类型)
            intent.putExtra("KEY_FILLED_COUNT", filledCount);
            // 传递已填写的内容数组
            intent.putExtra("KEY_FILLED_DATA", filledContent.toArray(new String[0]));

            startActivity(intent);
        });
    }
}

第二步:在目标Activity接收数据

接下来在你要跳转的Activity里,获取传递过来的数量和数据:

import android.content.Intent;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;

public class TargetActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_target);

        Intent receivedIntent = getIntent();
        // 获取已填写数量,第二个参数是默认值(如果没拿到数据就返回0)
        int filledCount = receivedIntent.getIntExtra("KEY_FILLED_COUNT", 0);
        // 获取已填写的内容数组
        String[] filledData = receivedIntent.getStringArrayExtra("KEY_FILLED_DATA");

        // 现在你就可以使用filledCount和filledData了
        // 示例:打印到日志或者显示在UI上
        if (filledData != null) {
            for (String content : filledData) {
                // 处理每个已填写的内容,比如TextView显示
            }
        }
    }
}

注意事项

  • 确保所有EditText的id都正确对应,不要遗漏初始化
  • 使用trim()可以避免用户只输入空格被误判为已填写
  • 如果需要传递更复杂的对象,可以考虑使用Parcelable接口,但这里字符串数组完全够用
  • 接收数据时的默认值要合理,比如filledCount默认0,防止空指针异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:59:13