保存添加到现有微调器顶部的选项

时间:2017-08-03 10:20:20

标签: android arrays spinner

我正在尝试允许用户向现有微调器添加更多选项。 微调器显示我创建的现有数组列表中的选项。用户可以向微调器添加选项,但仅在应用程序运行时才会添加。当它重新打开时,添加的选项不在那里,我知道为什么。 我只需要知道如何在不使用数据库的情况下保存这些选项。我确实找到了共享的首选方法,但它们太复杂了。 我们将非常感谢您的帮助。

这是数组的一部分,也是对spinner的补充。

#import <UIKit/UIKit.h>

@interface CarouselUIView : UIView

@property (weak, nonatomic) IBOutlet UIImageView * carouselImage;


@end

这是向微调器添加新选项的一部分。

final List<String> spinnerArray =  new ArrayList<String>();
    spinnerArray.add("Grocery");
    spinnerArray.add("Transportation");
    spinnerArray.add("Rent");
    spinnerArray.add("Electricity Bill");

  final  ArrayAdapter<String> adapter = new ArrayAdapter<String>(
            this, android.R.layout.simple_spinner_item, spinnerArray);

    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    Spinner sItems = (Spinner) findViewById(R.id.spinner);
    sItems.setAdapter(adapter);

1 个答案:

答案 0 :(得分:0)

最好的方法是保存在SharedPreference中,因为数据库将是更多的样板代码。或者您可以执行文件操作。但是以共享偏好存储非常容易。您可以使用以下方法来执行此操作。

将数组保存到SP

public boolean saveArray(List<String> array, String arrayName, Context mContext) {   
    SharedPreferences prefs = mContext.getSharedPreferences("preferencename", 0);  
    SharedPreferences.Editor editor = prefs.edit();  
    editor.putInt(arrayName +"_size", array.size());  
    for(int i=0;i<array.size();i++)  
        editor.putString(arrayName + "_" + i, array.get(i));  
    return editor.commit();  
} 

从SP

加载数组
public List<String> loadArray(String arrayName, Context mContext) {  
    SharedPreferences prefs = mContext.getSharedPreferences("preferencename", 0);  
    int size = prefs.getInt(arrayName + "_size", 0);  
    List<String> array = new ArrayList<String> ();  
    for(int i=0;i<size;i++)  
        array.add(prefs.getString(arrayName + "_" + i, null));  
    return array;  
}

现在要在你的代码中使用,你所要做的就是 -

saveArray(spinnerArray,"SpinnerArrayData",getApplicationContext());

得到 -

spinnerArray = loadArray(SpinnerArrayData",getApplicationContext())