I have activity having three sliding tab layout. i fetch data from json while open the activity . I want to pass Array list of different data to different sliding tab layout . my code is here :
public class HisstoryMain extends AppCompatActivity {
private Toolbar toolbar;
private TabLayout tabLayout;
private ViewPager viewPager;
private String cust_id;
private QpayDatabases sctDatabaseHelper;
private ProgressDialog progressDialog;
private TextView sent, received;
private String TAG;
private ArrayList<Group> list = new ArrayList<Group>();
ArrayList<Group> payment = new ArrayList<Group>();
ArrayList<Group> purchases = new ArrayList<Group>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.history_main_activity_sliding);
sctDatabaseHelper = new QpayDatabases(this);
sctDatabaseHelper.getReadableDatabase();
cust_id = sctDatabaseHelper.getCu_id();
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
sent = (TextView) findViewById(R.id.total_out);
received = (TextView) findViewById(R.id.total_in);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
viewPager = (ViewPager) findViewById(R.id.viewpager);
setupViewPager(viewPager);
tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
new HistoryDetails().execute();
}
private void setupViewPager(ViewPager viewPager) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
adapter.addFragment(new HistoryAll(), "All");
adapter.addFragment(new HistoryBill(), "Bill payment");
adapter.addFragment(new HistoryPurch(), "Purchases");
viewPager.setAdapter(adapter);
}
class ViewPagerAdapter extends FragmentPagerAdapter {
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
onBackPressed();
return super.onOptionsItemSelected(item);
}
public class HistoryDetails extends AsyncTask<String, String, String> {
String SentAmount, ReceivedAmount;
@Override
protected void onPreExecute() {
progressDialog= new ProgressDialog(HisstoryMain.this);
progressDialog.setIndeterminate(false);
progressDialog.setCancelable(false);
progressDialog.show();
super.onPreExecute();
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
progressDialog.dismiss();
sent.setText("Rs."+SentAmount);
received.setText("Rs."+ReceivedAmount);
}
@Override
protected String doInBackground(String... params) {
ServiceHandler serviceHandler = new ServiceHandler();
String result = serviceHandler.makeServiceCall(ApplicationConstant.HISTORY_RESULT + cust_id + "&page=1&offset=20", ServiceHandler.GET);
Log.d(TAG, "result from history details : " + result);
try {
JSONObject jsonObject = new JSONObject(result);
String status = jsonObject.getString("status");
String message = jsonObject.getString("message");
Boolean success = jsonObject.getBoolean("success");
if (!status.isEmpty() && !status.equals("null") && status != null && status.equals("200") && success == true) {
JSONObject data = jsonObject.getJSONObject("data");
JSONObject CustomersTransactionTotal = data.getJSONObject("CustomersTransactionTotal");
SentAmount = CustomersTransactionTotal.getString("SentAmount");
ReceivedAmount = CustomersTransactionTotal.getString("ReceivedAmount");
JSONArray jsonArray = data.getJSONArray("History");
for (int i=0;i<jsonArray.length();i++){
ArrayList<Child> ch_list= new ArrayList<Child>();
Group group= new Group();
Child child = new Child();
JSONObject all_history=jsonArray.getJSONObject(i);
String Txn_Time = all_history.getString("Txn_Time");
String Merchant_Term_ID= all_history.getString("Merchant_Term_ID");
String Customer_ID = all_history.getString("Customer_ID");
String Txn_Amount = all_history.getString("Txn_Amount");
String STAN = all_history.getString("STAN");
String CRRN = all_history.getString("CRRN");
String Apr_Code = all_history.getString("Apr_Code");
String Merchant_Name = all_history.getString("Merchant_Name");
String Txn_Type = all_history.getString("Txn_Type");
group.setMerch_name(Merchant_Name);
group.setTxn_amt(Txn_Amount);
group.setTxn_date(Txn_Time);
child.setAddress(Merchant_Term_ID);
child.setState(Customer_ID);
child.setCity(STAN);
child.setPhone(CRRN);
child.setZip(Apr_Code);
group.setItems(ch_list);
ch_list.add(child);
list.add(group);
if (!Txn_Type.isEmpty() && Txn_Type != null && !Txn_Type.equals("null") && Txn_Type.equals("PU")){
group.setMerch_name(Merchant_Name);
group.setTxn_amt(Txn_Amount);
group.setTxn_date(Txn_Time);
child.setAddress(Merchant_Term_ID);
child.setState(Customer_ID);
child.setCity(STAN);
child.setPhone(CRRN);
child.setZip(Apr_Code);
group.setItems(ch_list);
ch_list.add(child);
purchases.add(group);
}else if (!Txn_Type.isEmpty() && Txn_Type != null && !Txn_Type.equals("null") && Txn_Type.equals("FT")){
group.setMerch_name(Merchant_Name);
group.setTxn_amt(Txn_Amount);
group.setTxn_date(Txn_Time);
child.setAddress(Merchant_Term_ID);
child.setState(Customer_ID);
child.setCity(STAN);
child.setPhone(CRRN);
child.setZip(Apr_Code);
group.setItems(ch_list);
ch_list.add(child);
payment.add(group);
}
}
}
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
}}
I want to pass list of array to these three fragments. any idea ?