Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在滑动选项卡之间传递对象_Android_Android Fragments_Tabs - Fatal编程技术网

Android 在滑动选项卡之间传递对象

Android 在滑动选项卡之间传递对象,android,android-fragments,tabs,Android,Android Fragments,Tabs,我有两个片段,在滑动选项卡上使用它,我想将对象从片段(1)传递到该对象来自的片段(2)(Web服务) 此活动负责制表符 public class ChartActivity extends AppCompatActivity { private static final String TAG="ChartActivity"; private ViewPager mPager; private SlidingTabLayout tabLayout; private Toolbar t

我有两个片段,在滑动选项卡上使用它,我想将对象从片段(1)传递到该对象来自的片段(2)(Web服务)

此活动负责制表符

   public class ChartActivity extends AppCompatActivity {

private static final String TAG="ChartActivity";

private ViewPager mPager;

private SlidingTabLayout tabLayout;

private Toolbar toolbarChart;

private TextView txtToolbar;

private AdapterTabs adapterTabs;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_chart);
    Log.e(TAG,"starting to Create Chart");
    setupToolBar();
    setupTabs();
}



// setup ToolBar
public void setupToolBar() {
    toolbarChart = (Toolbar) findViewById(R.id.app_bar_chart); // get instance from view
    setSupportActionBar(toolbarChart);  // set Toolbar in supporting ActionBar
    getSupportActionBar().setDisplayShowTitleEnabled(false);
    txtToolbar=(TextView)toolbarChart.findViewById(R.id.toolbar_title);
    txtToolbar.setText("Dashboard");
}

public void setupTabs(){
    tabLayout=(SlidingTabLayout)findViewById(R.id.tabs);
    mPager=(ViewPager)findViewById(R.id.viewPager);
    adapterTabs= new AdapterTabs(this,getSupportFragmentManager());
    mPager.setAdapter(adapterTabs);
    tabLayout.setDistributeEvenly(true);
    tabLayout.setCustomTabColorizer(new SlidingTabLayout.TabColorizer() {
        @Override
        public int getIndicatorColor(int position) {
            return getResources().getColor(R.color.colorAccent);
        }
    });
    tabLayout.setViewPager(mPager);
}

public AdapterTabs getAdapterTabs() {
    return adapterTabs;
}

 }
这个片段(1)

public类片段扩展片段{
私有最终静态字符串inpularity_STATE=“inpularity”;
公共最终静态字符串outmount\u STATE=“outmount”;
私有请求队列请求;
私人海图;
ArrayList住院患者;
ArrayList Outmount;//Outmount===>在片段(2)中显示它
私有进程对话;
私人排球单打;
私有最终静态字符串TAG=“inquiredfragment”;
公共卫生服务({
//必需的空公共构造函数
}
@凌驾
创建时的公共void(@Nullable Bundle savedInstanceState){
super.onCreate(savedInstanceState);
progressDialog=新建progressDialog(getActivity());
progressDialog.setUndeterminate(true);
设置消息(“加载数据…”);
requsetDatachart();
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
视图布局=充气机。充气(R.layout.fragment\u住院患者,容器,假);
chart=(PieChart)layout.findviewbyd(R.id.PieChart);
图表。setCenterTextSize(10);
图表。setCenterText(“住院患者”);
图表。setDrawEntryLabels(真);
图.塞托莱拉迪乌斯(2.5f);
返回布局;
}
@凌驾
公共void-onAttach(上下文){
super.onAttach(上下文);
}
私有void请求数据表(){
singleton=VolleySingleton.getInstance();
request=singleton.getRequestQueue();
progressDialog.show();
JsonObjectRequest objectRequest=新的JsonObjectRequest(Request.Method.GET,MyApplication.APP_URL+“api/getOverview”,null,
新的Response.Listener(){
@凌驾
公共void onResponse(JSONObject响应){
住院患者=PatientPasser.parserJsonPatient(回答,“住院患者”,1);
Log.e(标签,inspitalpatients.size()+);
门诊=PatientPasser.parserJsonPatient(回答“门诊”,0);
addDataToChart(住院患者);
progressDialog.disclose();
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
Log.e(标记,error.getMessage());
progressDialog.disclose();
}
});
添加(objectRequest);
}
公共无效addDataToChart(列出患者){
ArrayListPieeEntries=新的ArrayList();
对于(int i=0;片段(1)中的i列表)

公共类OutpatientFragment扩展了片段{
私有最终静态字符串TAG=“OutpatientFragment”;
私有静态最终字符串ARG_PARAM1=“PARAM1”;
ArrayList门诊;
私有请求队列请求;
私人海图;
私有进程对话;
私人排球单打;
公共门诊片段(){
//必需的空公共构造函数
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
视图布局=充气机。充气(R.layout.fragment\u,容器,false);
//getArguments();
chart=(PieChart)layout.findviewbyd(R.id.PieChart);
图表。setCenterTextSize(10);
图表.setCenterText(“门诊”);
图表。setDrawEntryLabels(真);
图.塞托莱拉迪乌斯(2.5f);
返回布局;
}
@凌驾
恢复时公开作废(){
super.onResume();
}
@凌驾
创建时的公共void(@Nullable Bundle savedInstanceState){
super.onCreate(savedInstanceState);
progressDialog=新建progressDialog(getActivity());
progressDialog.setUndeterminate(true);
设置消息(“加载数据…”);
}
}
我想你可以用它。例如

接收数据时调用
EventBus.getDefault().post(newmessageevent())

例如,在
OutpatientFragment
中创建接收数据的方法

@Subscribe(threadMode = ThreadMode.MAIN)  
public void onMessageEvent(MessageEvent event) {/* Do something */};
 public class OutpatientFragment extends Fragment {


private final static String TAG = "OutpatientFragment";

private static final String ARG_PARAM1 = "param1";

ArrayList<Patient> outPatient;

private RequestQueue request;

private PieChart chart;

private ProgressDialog progressDialog;

private VolleySingleton singleton;



public OutpatientFragment() {
    // Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View layout=inflater.inflate(R.layout.fragment_outpatient, container, false);
    //getArguments().getBundle(InpatientFragment.OutPatient_STATE).getParcelableArrayList();
    chart = (PieChart) layout.findViewById(R.id.pieChart);
    chart.setCenterTextSize(10);
    chart.setCenterText("Outpatient");
    chart.setDrawEntryLabels(true);
    chart.setHoleRadius(2.5f);
    return layout;
}

@Override
public void onResume() {
    super.onResume();

}

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    progressDialog = new ProgressDialog(getActivity());
    progressDialog.setIndeterminate(true);
    progressDialog.setMessage("Load Data...");
    }


  }
@Subscribe(threadMode = ThreadMode.MAIN)  
public void onMessageEvent(MessageEvent event) {/* Do something */};