android 如何使用来自另一个Activity的数据和按钮点击来编辑来自Main Activity的Array,而无需在Activity之间切换?

z18hc3ub  于 2023-01-03  发布在  Android
关注(0)|答案(2)|浏览(128)

我尝试在主活动中初始化自定义数组。我想从包含数据和按钮单击的另一个活动更新/编辑数组中的元素。我的主活动是主活动,第二个活动是显示。有人能帮忙吗?

public class MainActivity extends AppCompatActivity {

    public Pets[] arrayList=new Pets[]{
            new Pets(R.drawable.dog,"Dog","Wolf","The dog is a domesticated descendant of the wolf. Also called the domestic dog"),
            new Pets(R.drawable.bird,"Bird","Unknown!","Birds are a group of warm-blooded vertebrates constituting the class Aves characterised by feathers, toothless beaked jaws"),
            new Pets(R.drawable.cat,"Cat","Tiger","The cat is a domestic species of small carnivorous mammal"),
    };
textd = ed.getText().toString();
       
        ed.setVisibility(View.GONE);
        d.setVisibility(View.VISIBLE);

        d.setText(textd);

        Intent i = new Intent(Display.this, MainActivity.class);

        i.putExtra("edit", textd);
     
        i.putExtra("pos", pos);
        i.putExtra("click", click);

        startActivity(i);

        finish();

此代码位于显示活动中。我需要更改此活动中的数据,而不是切换到主活动

bis0qfac

bis0qfac1#

若要从另一个Activity更新数组中的元素,您可以使用Intent将数据从第二个Activity(Display)传递到第一个Activity(MainActivity)。
在Display Activity中,您可以创建一个按钮,用于将Intent发送到MainActivity,并在Intent中包含要更新的数据。然后,您可以在MainActivity中检索此数据,并使用它更新数组中的相应元素。
下面是一个示例,说明如何执行此操作:
在Display Activity中,创建一个在单击时向MainActivity发送Intent的按钮。为此,您可以为该按钮设置OnClickListener,并使用Intent作为参数调用startActivity()方法:

Button updateButton = (Button) findViewById(R.id.update_button);
    updateButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(Display.this, MainActivity.class);
            // Add the data you want to update to the Intent here
            startActivity(intent);
        }
    });

在MainActivity中,重写onNewIntent()方法以从Intent中检索数据并更新数组中的元素。为此,您可以调用getIntent()方法以获取用于启动Activity的Intent,然后从Intent中提取数据:

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    // Retrieve the data from the Intent here
    // Use the data to update the appropriate element in the array
}
bt1cpqcv

bt1cpqcv2#

首先,不要在主活动中创建数据。活动是你的视图,如果你把数据源和视图分开,你可以很容易地更新它。

相关问题