将数据从活动传递到滑动选项卡片段

时间:2016-06-30 09:52:12

标签: android android-fragments android-fragmentactivity

我有三个滑动标签布局的活动。我打开活动时从json获取数据。我想将不同数据的数组列表传递给不同的滑动选项卡布局。 我的代码在这里:

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

我想将数组列表传递给这三个片段。任何想法?

0 个答案:

没有答案
相关问题