2016-08-29 22 views
1

私は初心者アンドロイドデベロッパーです。ショッピングカートのデータを一時的に保存する際に問題があります。それはカスタムシャツアプリです。ゲストは、襟、袖口などを選択する必要があります。 私は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; 

} 

}

それは、リストビューアダプタの項目リストです。

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

}

それは私がappllicationを使用して、シングルトン、グローバル変数のArrayListを作成しようとしました、と多くのことをshearchedが、すべてが失敗したリストビューアダプタ です。 リストビューのためのグローバルarraylistを作ってもらえますか? データを一時的に保存し、別のアクティビティにarraylistデータを書き込むのに役立ちます。おかげさまで

+1

共有設定を使用する –

+0

@AvinashMishraよく共有された設定を使いたくないので、グローバル変数を使ってこの問題を解決する方法を知りたいだけです。 – Yeong

+0

共有設定は私があまりにも使用したものです – Veer3383

答えて

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アプリケーションクラス。マニフェストにパッケージの名前を覚えておいてください。

+0

私はシャツの属性を収集するために意図を使用しました、私はショッピングカート用のカスタマイズされたシャツデータを保存したい1つのシャツ – Yeong

+0

私は、あなたのデータベースを永続化させたい場合は、SharedPreferencesまたはある種のデータベースを使用する必要があると思います。 @ DDerTypはすでにあなたにコードを与えています。それを使ってください。 – Imdad

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

それだことを!

0

Androidには、永続的なアプリケーションデータを保存するためのオプションが用意されています。選択するソリューションは、データをプライベート、永続、データに必要な容量など、特定のニーズに応じて選択します。 Developers Guide

0

を見て、私は簡単に設定することができhttps://github.com/pilgr/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(); 
関連する問題