I am having textview txtQuantity in my dashboard activity. I wrote separate class for custom adapter which will contain sold products.
protected void onCrea
As I understand the question, you are interested in a way to update UI outside the adapter after doButtonOneClickActions();
The simplest way would be to use https://github.com/greenrobot/EventBus
Examples can be found here http://awalkingcity.com/blog/2013/02/26/productive-android-eventbus/
If you do not want to do this, you can create a callback http://android-er.blogspot.dk/2013/09/implement-callback-function-with.html
Override notifyDataSetChanged() in your adapter class ... and do what ever you want ...
@Override
public void notifyDataSetChanged() {
super.notifyDataSetChanged();
// Your code to nofify
}
the main idea is:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dashboard);
list = (ListView) findViewById(R.id.listSoldItems);
txtAmount = (TextView) findViewById(R.id.txtAmount);
txtItems = (TextView) findViewById(R.id.txtItems);
// init listview
adapter = new Sold_item_adaptor(Dashboard.this, soldItemsList,txtAmount);
list.setAdapter(adapter);
in your adapter:
public class MyAdapter extends ArrayAdapter<SoldItemsList > {
private Context context;
private mTotalQty;
private TextView mTxtAmountAdapter;
public OfferAdapter(Context context, int resource,SoldItemsList object,TextView txtAmount ) {
super(context, resource, objects);
this.context = context;
this.mTxtAmountAdapter = txtAmount;
}
//...
imgCancel.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
doButtonOneClickActions(position);
// update totalAmount
mTxtAmountAdapter.setText(Integer.valueOf(totalAmount).toString()));
}
});
imgPlus.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
qtyClickAction(position);
// update totalQty
mTxtAmountAdapter.setText(Integer.valueOf(totalAmount).toString()));
}
});
By providing a simple callback.
For this to work write a simple interface in your adapter
public interface OnDataChangeListener{
public void onDataChanged(int size);
}
and add a setter for the listener (also in the adapter)
OnDataChangeListener mOnDataChangeListener;
public void setOnDataChangeListener(OnDataChangeListener onDataChangeListener){
mOnDataChangeListener = onDataChangeListener;
}
now add additional code to the following block in the adapter
private void doButtonOneClickActions(TextView txtQuantity, int rowNumber) {
...
if(mOnDataChangeListener != null){
mOnDataChangeListener.onDataChanged(data.size());
}
}
in your dashboard activity you then need to register the listener
protected void onCreate(Bundle savedInstanceState) {
...
adapter.setOnDataChangeListener(new Sold_item_adaptor.OnDataChangeListener(){
public void onDataChanged(int size){
//do whatever here
}
});
}
That's about it ;).