【问题标题】:Android Array list save and recall best methodAndroid Array 列表保存和调用的最佳方法
【发布时间】:2017-06-10 13:50:06
【问题描述】:

我有一个列表(3 个列表),其中包含

  1. 姓名、电话、代码
  2. 想要保存数组调用并在应用关闭后进行选择。
  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("");       }
    
        }
    });
    

感谢任何帮助,我目前将其他数据保存为共享首选项

SharedPreferences settings = getSharedPreferences(Settings_Pref, 0);

这很好用,改变它们并可以调用它们,但需要做列表,所有列表都是要调用的数据并用于不同的短信系统,而不是记住所有不同的系统并手动输入,希望能够回忆。

不确定我是否以正确的方式看待这个问题,任何帮助 tinyDB 的选项都可能会收到很多。

谢谢

【问题讨论】:

    标签: android arrays list


    【解决方案1】:

    您可以使用GSON来保存数据:

    如果你使用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):

    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);
    

    【讨论】:

    • 谢谢,还有其他方法吗,好像在 intellj 中我需要添加 gradle 或导入一个以前从未使用过的 gradle 项目并且不希望直接集成?
    • oww .. 永远不要尝试使用 intelliJ。也许这对你有帮助:jetbrains.com/help/idea/2016.3/…
    • 真的很难将 gradle 添加到依赖项中,至少可以看到 gradle 我有一个 android 和一个 java gradle 可用,但似乎无法在依赖项选项卡中获得任何一个.....跨度>
    • 你的 IntelliJ 项目中有 build.gradle 文件吗?
    • 如果我建立一个新项目并预先选择 gradle 就可以了,所以需要导入和合并或者我猜的东西,至少我现在已经到了某个地方
    猜你喜欢
    • 2015-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多