我是初学者安卓开发者。我有一个关于临时保存购物车数据的问题。这是一个定制衬衫应用程序。客人应选择衣领,袖口等。 我使用listview显示客户选择的这些选定项目和选项。
public class Cart_item_list {
private static int cart_itemimage;
private static String cart_itemname;
private static String cart_itemprice;
private static String cart_collar;
private static String cart_cuffs;
private static String cart_placket;
private static String cart_pocket;
private static String cart_fit;
private static String cart_initial;
public static int getCart_itemimage() {
return cart_itemimage;
}
public static void setCart_itemimage(int cart_itemimage) {
Cart_item_list.cart_itemimage = cart_itemimage;
}
public static String getCart_itemname() {
return cart_itemname;
}
public static void setCart_itemname(String cart_itemname) {
Cart_item_list.cart_itemname = cart_itemname;
}
public static String getCart_itemprice() {
return cart_itemprice;
}
public static void setCart_itemprice(String cart_itemprice) {
Cart_item_list.cart_itemprice = cart_itemprice;
}
public static String getCart_collar() {
return cart_collar;
}
public static void setCart_collar(String cart_collar) {
Cart_item_list.cart_collar = cart_collar;
}
public static String getCart_cuffs() {
return cart_cuffs;
}
public static void setCart_cuffs(String cart_cuffs) {
Cart_item_list.cart_cuffs = cart_cuffs;
}
public static String getCart_placket() {
return cart_placket;
}
public static void setCart_placket(String cart_placket) {
Cart_item_list.cart_placket = cart_placket;
}
public static String getCart_pocket() {
return cart_pocket;
}
public static void setCart_pocket(String cart_pocket) {
Cart_item_list.cart_pocket = cart_pocket;
}
public static String getCart_fit() {
return cart_fit;
}
public static void setCart_fit(String cart_fit) {
Cart_item_list.cart_fit = cart_fit;
}
public static String getCart_initial() {
return cart_initial;
}
public static void setCart_initial(String cart_initial) {
Cart_item_list.cart_initial = cart_initial;
}
public Cart_item_list(int cart_itemimage, String cart_itemname, String cart_itemprice, String cart_collar, String cart_cuffs, String cart_placket, String cart_pocket, String cart_fit, String cart_initial) {
this.cart_itemimage = cart_itemimage;
this.cart_itemname = cart_itemname;
this.cart_itemprice = cart_itemprice;
this.cart_collar = cart_collar;
this.cart_cuffs = cart_cuffs;
this.cart_placket = cart_placket;
this.cart_pocket = cart_pocket;
this.cart_fit = cart_fit;
this.cart_initial = cart_initial;
}
}
这是listview适配器的项目列表。
package com.example.yeong.shifendingzhi;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
public class Cart_item_adapter extends BaseAdapter {
Context context;
ArrayList<Cart_item_list> cart_item_listArrayList;
public Cart_item_adapter(Context context, ArrayList<Cart_item_list> cart_item_listArrayList) {
this.context = context;
this.cart_item_listArrayList = cart_item_listArrayList;
}
@Override
public int getCount() {
return cart_item_listArrayList.size();
}
@Override
public Object getItem(int i) {
return cart_item_listArrayList.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
view = LayoutInflater.from(context).inflate(R.layout.cart_listview, null);
ImageView selected_item_image = (ImageView) view.findViewById(R.id.selected_item_image);
TextView selected_cart_name = (TextView) view.findViewById(R.id.selected_cart_name);
TextView selected_cart_cuffs = (TextView) view.findViewById(R.id.selected_cart_cuffs);
TextView selected_cart_initial = (TextView) view.findViewById(R.id.selected_cart_initial);
TextView selected_cart_placket = (TextView) view.findViewById(R.id.selected_cart_placket);
TextView selected_cart_fit = (TextView) view.findViewById(R.id.selected_cart_fit);
TextView selected_cart_pocket = (TextView) view.findViewById(R.id.selected_cart_pocket);
TextView selected_cart_price = (TextView) view.findViewById(R.id.selected_cart_price);
TextView selected_cart_collar = (TextView) view.findViewById(R.id.selected_cart_collar);
selected_cart_name.setText(cart_item_listArrayList.get(i).getCart_itemname());
selected_cart_cuffs.setText(cart_item_listArrayList.get(i).getCart_cuffs());
selected_cart_initial.setText(cart_item_listArrayList.get(i).getCart_initial());
selected_cart_placket.setText(cart_item_listArrayList.get(i).getCart_placket());
selected_cart_fit.setText(cart_item_listArrayList.get(i).getCart_fit());
selected_cart_pocket.setText(cart_item_listArrayList.get(i).getCart_pocket());
selected_cart_price.setText(cart_item_listArrayList.get(i).getCart_itemprice());
selected_cart_collar.setText(cart_item_listArrayList.get(i).getCart_collar());
selected_item_image.setImageResource(cart_item_listArrayList.get(i).getCart_itemimage());
return view;
}
}
它是listview适配器 我尝试创建全局变量arraylist,并且剪切了很多,但都是使用appllication失败的单例。 你能帮我为listview制作全球性的arraylist吗? 它帮助我临时保存数据并将arraylist数据转移到另一个活动上。 感谢。
答案 0 :(得分:1)
我推荐来自https://github.com/pilgr/Paper
的Paper库它易于配置,无需设置任何sql类型的连接,就像在本地写入文本文件一样。 我用它,它很坚固。 我主要用它来存储登录活动页面中记住我的用户名和密码:
if(ckbRemember.isChecked())
{
Paper.book().write(Common.USER_KEY,edtUsername.getText().toString());
Paper.book().write(Common.PWD_KEY,edtPassword.getText().toString());
}
当您想要随时清除数据时,可以从以下任何活动中清除数据:
Paper.book().destroy();
答案 1 :(得分:0)
使用简单的POJO类。创建一个存储衬衫属性的java类。然后声明一个以该类为基本类型的全局arraylist。
public class Shirt{
String cuffs;
String plackets;
String collars;
...
public String getCuff(){...}
public String getCollar(){...}
public void setCuff(){...}
public void setCollar(){...}
}
ArrayList<Shirt> shirts = new ArrayList<>();
现在,如果要保留它,则必须将其存储在SharedPreference或某个数据库中。如果您不想要存储但需要全局上下文类型变量,则可以使用Application
类或静态变量,具体取决于您的用例。
编辑:一个简单的example Application类。请记得在Manifest中命名包。
答案 2 :(得分:0)
如果您想要更长时间存储所有这些值(例如,几天或用户关闭您的应用),您可以将这些值存储在shared preferences
中:
SharedPreferences spInstance = getSharedPreferences("my_identifier", Context.MODE_PRIVATE);
SharedPreferences.Editor spEditor = spInstance.edit();
spEditor.putString("key", "value");
spEditor.apply(); // Save the data
//Retrieve the data:
SharedPreferences spInstance = getSharedPreferences("my_identifier", Context.MODE_PRIVATE);
SharedPreferences.Editor spEditor = spInstance.edit();
String myString = spInstance.getString("key", "default-value");
就是这样!
答案 3 :(得分:0)
Android提供了几个保存持久应用程序数据的选项。您选择的解决方案取决于您的特定需求,例如数据是否应该是私有的,持久的以及您的数据需要多少空间。看看Developers Guide