Java 如何在删除时更新其他活动中的arraylist?

Java 如何在删除时更新其他活动中的arraylist?,java,android,arraylist,Java,Android,Arraylist,我在一个活动中填充了Arraylist,但在另一个活动中删除了该Arraylist的项。那么我应该如何更新原始的ArrayList呢 在活动1中: FloatingActionButton show = (FloatingActionButton) findViewById(R.id.showB); show.setOnClickListener(new View.OnClickListener() { @Override public void onC

我在一个活动中填充了Arraylist,但在另一个活动中删除了该Arraylist的项。那么我应该如何更新原始的ArrayList呢

在活动1中:

 FloatingActionButton show = (FloatingActionButton) findViewById(R.id.showB);
    show.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MainActivity.this, Main2Activity.class);

            intent.putStringArrayListExtra("key", foo);
            intent.putStringArrayListExtra("key2", foo2);
            intent.putStringArrayListExtra("key3", foo3);
            startActivity(intent);

        }
    });
在活动2中:

    final ArrayList<String> list = getIntent().getStringArrayListExtra("key");
    final ArrayList<String> list2 = getIntent().getStringArrayListExtra("key2");
    final ArrayList<String> list3 = getIntent().getStringArrayListExtra("key3");
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> a, View v, int position, long id) {
            AlertDialog.Builder adb=new AlertDialog.Builder(Main2Activity.this);
            adb.setTitle("Delete?");
            adb.setMessage("Are you sure you want to delete ?");
            final int positionToRemove = position;
            adb.setNegativeButton("Cancel", null);
            adb.setPositiveButton("Yes", new AlertDialog.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    list.remove(positionToRemove);
                    arrayAdapter.notifyDataSetChanged();
                }});
            adb.show();
        }

    });
final ArrayList list=getIntent().getStringArrayListExtra(“键”);
最终ArrayList列表2=getIntent().getStringArrayListExtra(“key2”);
最终ArrayList list3=getIntent().getStringArrayListExtra(“key3”);
//活动2中的删除:

    final ArrayList<String> list = getIntent().getStringArrayListExtra("key");
    final ArrayList<String> list2 = getIntent().getStringArrayListExtra("key2");
    final ArrayList<String> list3 = getIntent().getStringArrayListExtra("key3");
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        public void onItemClick(AdapterView<?> a, View v, int position, long id) {
            AlertDialog.Builder adb=new AlertDialog.Builder(Main2Activity.this);
            adb.setTitle("Delete?");
            adb.setMessage("Are you sure you want to delete ?");
            final int positionToRemove = position;
            adb.setNegativeButton("Cancel", null);
            adb.setPositiveButton("Yes", new AlertDialog.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    list.remove(positionToRemove);
                    arrayAdapter.notifyDataSetChanged();
                }});
            adb.show();
        }

    });
lv.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
公共视图单击(适配器视图a、视图v、内部位置、长id){
AlertDialog.Builder adb=新建AlertDialog.Builder(Main2Activity.this);
adb.setTitle(“删除?”);
setMessage(“您确定要删除吗?”);
最终int位置ToRemove=位置;
adb.setNegativeButton(“取消”,空);
adb.setPositiveButton(“是”,新建AlertDialog.OnClickListener(){
public void onClick(DialogInterface dialog,int which){
列表。删除(位置删除);
arrayAdapter.notifyDataSetChanged();
}});
adb.show();
}
});

现在,它在活动2中成功删除,但在活动1中未更新为原始arraylist

在Singleton类中为arraylist创建一个全局变量并从中访问arraylist,而不是通过Intent传递arraylist。这将有助于从应用程序中的任何位置轻松修改/更新arraylist

public class MySingleton
{
  private static  MySingleton mSingleton;
  public static ArrayList<String> myList = new ArrayList<String>;

  public static MySingleton getInstance()
  {
    if(mSingleton == null)
      mSingleton = new MySingleton();
    else
       return mSingleton;
  }
}
让它:

public static ArrayList<String> l1
公共静态数组列表l1

y创建3个不同的arraylist而不是1我需要3个用于不同的目的,只是显示了删除一个,这样你就知道了。它没有删除,因为活动1中没有arraylist,它总是静态列表,具有固定大小和固定值。如果您在活动1中创建arraylist,然后将其发送到活动2,则效果会更好。如果创建了arraylist,它的大小不是固定的。它将被填充,然后发送到活动2显示完整的代码