Android数组列表保存和调用最佳方法

Android数组列表保存和调用最佳方法,android,arrays,list,Android,Arrays,List,我有一份清单(3份清单),其中包括 姓名、电话、代码 即使在应用程序关闭后仍要保存阵列调用和选择 到目前为止创建列表的代码 final EditText et=(EditText)findViewById (R.id.telephone_number_reference_entry); final EditText et1=(EditText)findViewById(R.id.telephone_number_entry); final EditText et2=(EditText)fi

我有一份清单(3份清单),其中包括

  • 姓名、电话、代码
  • 即使在应用程序关闭后仍要保存阵列调用和选择
  • 到目前为止创建列表的代码

    final EditText et=(EditText)findViewById    (R.id.telephone_number_reference_entry);
    final EditText et1=(EditText)findViewById(R.id.telephone_number_entry);
    final EditText et2=(EditText)findViewById(R.id.access_code_entry);
    final ListView new_text_number=(ListView) findViewById(R.id.new_text_number);
    final ListView  telephone_number_reference=(ListView)findViewById(R.id.telephone_number_reference);
    final ListView  access_code_reference=(ListView)findViewById(R.id.access_code_reference);
    
    final ArrayList<String> list = new ArrayList<String>();
    final ArrayAdapter<String> aa;
    aa = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
    new_text_number.setAdapter(aa);
    
    final ArrayList<String> list2 = new ArrayList<String>();
    final ArrayAdapter<String> aa2;
    aa2 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list2);
    telephone_number_reference.setAdapter(aa2);
    
    final ArrayList<String> list3 = new ArrayList<String>();
    final ArrayAdapter<String> aa3;
    aa3 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list3);
    access_code_reference.setAdapter(aa3);
    
    
    add_number_button.setOnClickListener(new View.OnClickListener() {
    
        @Override
        public void onClick(View view) {
    
            if(et.getText().length()>0 && et.getText().length()>0 && et2.getText().length()>3 && et2.getText().length()<=7) {
    
                list.add(0,et.getText().toString());
                aa.notifyDataSetChanged();
                et.setText("");
                list2.add(0,et1.getText().toString());
                aa2.notifyDataSetChanged();
                et1.setText("");
                list3.add(0,et2.getText().toString());
                aa3.notifyDataSetChanged();
                et2.setText("");       }
    
        }
    });
    
    这很好用,因为更改它们并可以调用它们,但需要做列表,所有列表都是要调用的数据,用于不同的sms系统,而不是记住所有不同的系统并手动键入,希望能够调用

    我不确定我看这是正确的方式,任何帮助tinyDB选项可能会收到很大的


    谢谢

    您可以使用保存数据:

    如果使用Android Studio,则需要将以下依赖项添加到app build.gradle:

    dependencies {
       ...
       compile 'com.google.code.gson:gson:2.8.0'
    }
    
    保存ArrayList:

    SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
    Editor editor = sharedPrefs.edit();
    Gson gson = new Gson();
    
    String json = gson.toJson(arrayList);
    
    editor.putString(YOUR_PREFERENCE_KEY, json);
    editor.commit();
    
    要阅读ArrayList(请记住,您需要添加
    import java.lang.reflect.Type
    ):

    SharedReferences SharedReferences=PreferenceManager.GetDefaultSharedReferences(上下文);
    Gson Gson=新的Gson();
    String json=sharedPrefs.getString(您的首选项密钥,null);
    Type Type=new-TypeToken(){}.getType();
    ArrayList ArrayList=gson.fromJson(json,类型);
    
    谢谢,还有其他方法吗?在intellj中,我需要添加gradle或导入以前从未使用过的gradle项目,并且不希望直接集成?oww。。不要尝试使用intelliJ。也许这会对你有所帮助:真的很难将gradle添加到依赖项中,至少可以看到gradle我有一个android和一个java gradle可用,但似乎无法在依赖项选项卡中获得任何一个…..你的IntelliJ项目中有build.gradle文件吗?如果我设置了一个新项目并提前选择gradle,我可以,所以我想我需要导入和合并或者做些什么,至少我现在有进展了
    SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
    Editor editor = sharedPrefs.edit();
    Gson gson = new Gson();
    
    String json = gson.toJson(arrayList);
    
    editor.putString(YOUR_PREFERENCE_KEY, json);
    editor.commit();
    
    SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
    Gson gson = new Gson();
    String json = sharedPrefs.getString(YOUR_PREFERENCE_KEY, null);
    Type type = new TypeToken<ArrayList<ArrayObject>>() {}.getType();
    ArrayList<ArrayObject> arrayList = gson.fromJson(json, type);