如何使不同片段中的TextView值相同

时间:2016-02-04 11:14:36

标签: android

这似乎很简单,但我无法修复它。所以请帮助我。我有两个片段

FruitsFragment.java
VegetableFragment.java

每个都有TextView' total'的布局。每个片段都有带有加号按钮的列表视图。只要点击加号按钮,总值就会增加。但是当选择另一个片段时,总值不会更新。我希望两个片段的总值相同。

FruitsFragment.java

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.act_layout, container, false);
        total = (TextView) v.findViewById(R.id.total_amount);
        listView = (ListView) v.findViewById(R.id.customListView);
        listAdapter = new ListAdapter1(getActivity(),arrItems,images,prices,weight);
        listAdapter.setTextView(total);
        listView.setAdapter(listAdapter);

    listAdapter.setCustomButtonListener(this);

    checkout = (Button) v.findViewById(R.id.checkout);


    checkout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

                Intent intent = new Intent(getContext(), Checkout.class);
                startActivity(intent);
        }
    });

    return v;
}

ListAdapter.java是

公共类ListAdapter1扩展了BaseAdapter {

public int qty = 1;

public ArrayList<Integer> quantity = new ArrayList<Integer>();
private TextView total;
private String[] listViewItems,prices,weight;
TypedArray images;
public static int pValue;
private Context context;
public static boolean t=false;
CustomButtonListener customButtonListener;

public void setTextView(TextView total)
{
    this.total = total;
}



public ListAdapter1(Context context, String[] listViewItems, TypedArray images, String[] weight, String[] prices) {
    this.context = context;
    this.listViewItems = listViewItems;
    this.images = images;
    this.prices=prices;
    this.weight=weight;
}

public void setCustomButtonListener(CustomButtonListener customButtonListner)
{
    this.customButtonListener = customButtonListner;
}

@Override
public int getCount() {
    return 5;
}

@Override
public String getItem(int position) {
    return listViewItems[position];
}


@Override
public long getItemId(int position) {
    return 0;
}

@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
    View row;


    final ListViewHolder listViewHolder;
    if(convertView == null)
    {
        LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        row = layoutInflater.inflate(R.layout.product,parent,false);
        listViewHolder = new ListViewHolder();
        listViewHolder.tvProductName = (TextView) row.findViewById(R.id.tvProductName)
        listViewHolder.tvPrices = (TextView) row.findViewById(R.id.tvProductPrice);
        listViewHolder.btnPlus = (ImageButton) row.findViewById(R.id.ib_addnew);
        listViewHolder.edTextQuantity = (EditText) row.findViewById(R.id.editTextQuantity);
        listViewHolder.btnMinus = (ImageButton) row.findViewById(R.id.ib_remove);
        row.setTag(listViewHolder);
    }
    else
    {
        row=convertView;
        listViewHolder= (ListViewHolder) row.getTag();
    }

    try{

        listViewHolder.edTextQuantity.setText(quantity.get(position) );

    }catch(Exception e){
        e.printStackTrace();
    }


    listViewHolder.btnMinus.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Toast.makeText(context, " " + position, Toast.LENGTH_SHORT).show();

            int mValue = Integer.parseInt(listViewHolder.edTextQuantity.getText().toString());
            if (mValue <=0) {
                System.out.println("not valid");
                mValue=0;
                listViewHolder.edTextQuantity.setText("" +mValue);
            }
            else{
                pValue=pValue/mValue;
                mValue--;
                pValue=pValue*mValue;
                total.setText(String.valueOf(pValue));
                System.out.println("mvalue after reducing-----------"+mValue);
                System.out.println("pvalue-----------"+pValue);
                listViewHolder.edTextQuantity.setText( "" +mValue );

            }
        }
    });

    listViewHolder.btnPlus.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            Toast.makeText(context, " " + position, Toast.LENGTH_SHORT).show();

            int mValue = Integer.parseInt(listViewHolder.edTextQuantity.getText().toString());
            pValue=Integer.parseInt(listViewHolder.tvPrices.getText().toString());
            mValue++;
            listViewHolder.edTextQuantity.setText("" + mValue);
            System.out.println("mValue after increment---" + mValue);
            pValue=pValue*mValue;
            System.out.println("pvalue-----------"+pValue);
            total.setText(String.valueOf(pValue));
        }
    });
    return row;
}

0 个答案:

没有答案