将模型类用于全局 ArrayList 后如何设置值? [英] How to set values after using model class for global ArrayList?
问题描述
我创建了一个模型类来存储我的产品名称、价格和数量,然后我将它附加到另一个 Fragment
并尝试在我的 TextView
中显示它.不幸的是,使用 ArrayList
我无法获得项目的位置.以下是我的片段代码.我需要帮助.
I've created one model class to store my product name,price and quantity,and then I attach it to another Fragment
and try to display it in my TextView
. Unfortunately with that ArrayList
I'm not able to get the position of the items. Following is my snippet code. I need help.
模型类 Arr_Model.Java
public class Arr_Model {
private String BRAND_NAME;
private String BRNAD_PRICE;
private String QTY ;
public Arr_Model(){}
public String getBRAND_NAME() {
return BRAND_NAME;
}
public String getQTY() {
return QTY;
}
public void setBRAND_NAME(String BRAND_NAME) {
this.BRAND_NAME = BRAND_NAME;
}
public void setBRNAD_PRICE(String BRNAD_PRICE) {
this.BRNAD_PRICE = BRNAD_PRICE;
}
public void setQTY(String QTY) {
this.QTY = QTY;
}
public String getBRNAD_PRICE() {
return BRNAD_PRICE;
}
}
这里我从响应中获取值并将它们存储在 arraylist
Here I am getting the values from response and store them in arraylist
ProductDetail.java
1)首先我从响应中获取数据,它是产品名称及其价格
1)First i am getting data from response,it is product name and its price
类 LoadAlbums 扩展 AsyncTask>> {/*** 在启动后台线程之前显示进度对话框* */
class LoadAlbums extends AsyncTask>> { /** * Before starting background thread Show Progress Dialog * */
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(All_Product_Details.this.getActivity());
pDialog.setMessage("Loading...");
pDialog.setIndeterminate(true);
pDialog.setCancelable(false);
pDialog.show();
}
protected ArrayList<HashMap<String,String>> doInBackground(String... args) {
ServiceHandler sh = new ServiceHandler();
String jsonStr = sh.makeServiceCall(USER_URL, ServiceHandler.GET);
Log.d("Response: ", "> " + jsonStr);
if (jsonStr != null) {
try {
JSONObject jsonObj = new JSONObject(jsonStr);
JSONObject pname = jsonObj.getJSONObject(PRODUCT_MAIN);
System.out.println("Jsonobject product>>" + pname);
JSONArray sizes = new JSONArray();
sizes = pname.getJSONArray("attributes");
for (int j = 0; j < sizes.length(); j++) {
JSONObject jsonnewtwo = sizes.getJSONObject(j);
option = jsonnewtwo.getJSONArray("options");
System.out.println("Option---" + option);
}
System.out.println("Attribute size" + sizes);
user_name = pname.getString(USER_NAME);
prod_price = pname.getString(PRODUCT_PRICE);
prod_desc = pname.getString(PRODUCT_DESC);
} catch (JSONException e) {
e.printStackTrace();
}
} else {
Log.e("ServiceHandler", "Couldn't get any data from the url");
}
return null;
}
protected void onPostExecute(ArrayList<HashMap<String,String>> result) {
super.onPostExecute(result);
if (pDialog.isShowing())
pDialog.dismiss();
if(user_name.equals(""))
{
uname.setText("Not Available");
}
else
{
uname.setText(user_name);
}
if(prod_price.equals(""))
{
pprice.setText("Not Available");
}
else
{
pprice.setText(dollars+prod_price);
}
if(prod_desc.equals(""))
{
general_desc.setText("Not Available");
}
else
{
general_desc.setText(Html.fromHtml(prod_desc).toString());
}
2)然后我增加产品数量并点击添加到购物车按钮,点击添加到购物车我将数据保存在数组列表中..
2)then i increase product quantity and click on add to cart button,on click of add to cart i am saving data in arraylist..
btn_add_to_cart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
cartincrement();
productnams = GenericUtility.getStringFromSharedPrefsForKey("selected_prodname", getActivity());
//System.out.println("Seleced user name=-=-=-=-=-=-==-=" + productnams);
productprc = GenericUtility.getStringFromSharedPrefsForKey("selected_prodprc", getActivity());
//System.out.println("Seleced prodprice=-=-=-=-=-=-==-=" + productprc);
Arr_Model product = new Arr_Model();
product.setBRAND_NAME(user_name);
product.setBRNAD_PRICE(prod_price);
product.setQTY(_value.getText().toString());
productArraylist.add(product);
System.out.println("TEst--" + productArraylist.get(0).getBRAND_NAME());
}
});
//System.out.println("Test--" + productArraylist.get(0).getBRAND_NAME());
mBTIncrement.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
increment();
}
});
_decrease.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
decrement();
}
});
3) 然后我点击购物车图标查看我添加的商品及其数量
3)then i click on cart icon to view which item i added with its quantity
relcart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
_value.setText("1");
Add_to_cart tf = new Add_to_cart();
android.support.v4.app.FragmentManager fm = getFragmentManager();
android.support.v4.app.FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.frame_container, tf);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.addToBackStack(null);
ft.commit();
}
});
}
4) 现在是在列表视图中显示项目的最后一步,到下一个片段
4)now final step to display items in listview,to next fragment
public class Add_to_cart extends Fragment {
private Button continue_shopping;
private Button checkout;
ListView list;
private TextView _decrease,mBTIncrement,_value;
private CustomListAdapter adapter;
private ArrayList<String> alst;
private ArrayList<String> alstprc;
private String bname;
private ArrayList<Arr_Model> productArraylist;
public Add_to_cart(){}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View rootView = inflater.inflate(R.layout.list_view_addtocart, container, false);
productArraylist = All_Product_Details.productArraylist;
// alst=new ArrayList<String>();
// Bundle bundle = this.getArguments();
// alst = bundle.getStringArrayList("prodnam");
//consts.arr = new ArrayList<String>();
//consts.arr = alst;
// System.out.println("NAM--" + productArraylist);
// Bundle bundle1 = this.getArguments();
// alstprc = bundle1.getStringArrayList("prodprc");
/*
adapter = new CustomListAdapter(getActivity(),alst);
list=(ListView)rootView.findViewById(R.id.list_addtocart);
list.setAdapter(adapter);
adapter.notifyDataSetChanged();
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
}
});*/
return rootView;
}
public class CustomListAdapter extends BaseAdapter {
private Context context;
private ArrayList<Arr_Model> listData;
//private AQuery aQuery;
String dollars="\u0024";
public CustomListAdapter(Context context,ArrayList<Arr_Model> listData) {
this.context = context;
this.listData=listData;
// aQuery = new AQuery(this.context);
}
@Override
public int getCount() {
return listData.size();
}
@Override
public Object getItem(int position) {
return listData.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
convertView = LayoutInflater.from(getActivity()).inflate(R.layout.list_item_addtocart, null);
holder.txtproname = (TextView) convertView.findViewById(R.id.proname_addtocart);
holder.txtprofilecast = (TextView) convertView.findViewById(R.id.proprice_addtocart);
_decrease = (TextView)convertView.findViewById(R.id.minuss_addtocart);
mBTIncrement = (TextView)convertView.findViewById(R.id.plus_addtocart);
_value = (EditText)convertView.findViewById(R.id.edt_procount_addtocart);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
mBTIncrement.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
increment();
}
});
_decrease.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
decrement();
}
});
/* for(int i=0;i<productArraylist.size();i++)
{
holder.txtproname.setText(productArraylist.get(0));
}
holder.txtprofilecast.setText(dollars+alstprc.get(position));*/
// aQuery.id(holder.propic).image(listData.get(position).get(TAG_IMAGE),true,true,0,R.drawable.ic_launcher);
return convertView;
}
class ViewHolder{
ImageView propic;
TextView txtproname;
TextView txtprofilecast;
}
推荐答案
relcart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
_value.setText("1");
Add_to_cart tf = new Add_to_cart();
tf.setList(productArraylist);
android.support.v4.app.FragmentManager fm = getFragmentManager();
android.support.v4.app.FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.frame_container, tf);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.addToBackStack(null);
ft.commit();
}
});
在 Fragment 中添加以下方法.
Add below method in Fragment.
public void setList(ArrayList<Arr_Model> p_productArraylist) {
productArraylist = p_productArraylist;
}
这篇关于将模型类用于全局 ArrayList 后如何设置值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!