Android数组列表保存和调用最佳方法
我有一份清单(3份清单),其中包括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
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);