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

Android Studio实现从第二个Activity向主Activity的ListView添加数据

实现通讯录联系人添加功能的完整方案

一、完善MainActivity代码

初始化ListView、联系人数据列表,通过ActivityResultLauncher接收MainActivity2返回的信息并更新列表:

public class MainActivity extends AppCompatActivity {
    private FloatingActionButton addContactButton;
    ListView listView;
    ArrayList<String> contacts;
    ArrayAdapter<String> adapter;

    private ActivityResultLauncher<Intent> addContactLauncher;

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

        // 初始化联系人列表与ListView适配器
        contacts = new ArrayList<>();
        listView = findViewById(R.id.contact_list);
        adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, contacts);
        listView.setAdapter(adapter);

        // 设置添加按钮点击事件
        addContactButton = findViewById(R.id.add_contact);
        addContactButton.setOnClickListener(view -> openActivity2());

        // 注册结果回调,接收返回的联系人数据
        addContactLauncher = registerForActivityResult(
                new ActivityResultContracts.StartActivityForResult(),
                result -> {
                    if (result.getResultCode() == RESULT_OK && result.getData() != null) {
                        String contactInfo = result.getData().getStringExtra("CONTACT_INFO");
                        if (contactInfo != null && !contactInfo.isEmpty()) {
                            contacts.add(contactInfo);
                            adapter.notifyDataSetChanged();
                        }
                    }
                }
        );
    }

    public void openActivity2() {
        Intent intent = new Intent(this, MainActivity2.class);
        addContactLauncher.launch(intent);
    }
}

二、完善MainActivity2代码

获取表单输入内容,点击保存按钮后将数据返回给MainActivity:

public class MainActivity2 extends AppCompatActivity {
    private FloatingActionButton saveContact;
    private EditText etName, etPhone;

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

        // 绑定输入框与保存按钮
        etName = findViewById(R.id.et_name);
        etPhone = findViewById(R.id.et_phone);
        saveContact = findViewById(R.id.save_Contact_button);

        // 设置保存按钮点击事件
        saveContact.setOnClickListener(view -> {
            String name = etName.getText().toString().trim();
            String phone = etPhone.getText().toString().trim();

            // 校验输入完整性
            if (!name.isEmpty() && !phone.isEmpty()) {
                String contactInfo = name + " - " + phone;
                Intent resultIntent = new Intent();
                resultIntent.putExtra("CONTACT_INFO", contactInfo);
                setResult(RESULT_OK, resultIntent);
                finish();
            } else {
                Toast.makeText(this, "请输入完整的姓名和电话", Toast.LENGTH_SHORT).show();
            }
        });
    }
}

三、布局文件要求

  • activity_main.xml需包含:
    • id为contact_list的ListView
    • id为add_contact的FloatingActionButton
  • activity_main2.xml需包含:
    • id为et_name的EditText(用于输入姓名)
    • id为et_phone的EditText(用于输入电话)
    • id为save_Contact_button的FloatingActionButton

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 03:10:25