Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.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
带其他类型MPAndroidChart的可包裹objct_Android_Fragment_Parcelable_Mpandroidchart - Fatal编程技术网

带其他类型MPAndroidChart的可包裹objct

带其他类型MPAndroidChart的可包裹objct,android,fragment,parcelable,mpandroidchart,Android,Fragment,Parcelable,Mpandroidchart,//----------------------------------------------(二) 我从一个活动发送到另一个活动,从第二个活动发送到选项卡中的片段的所有数据。 但在fragment上,他只处理Entry类(lineEntries),并说 无法将条目强制转换为com.github.mikephil.charting.data.CandleEntry public class MainTabActivity extends AppCompatActivity {

//----------------------------------------------(二)

我从一个活动发送到另一个活动,从第二个活动发送到选项卡中的片段的所有数据。 但在fragment上,他只处理Entry类(lineEntries),并说 无法将条目强制转换为com.github.mikephil.charting.data.CandleEntry

  public class MainTabActivity extends AppCompatActivity {
        Toolbar toolbar;
        TabLayout tabLayout;
        ViewPager viewPager;
        ViewPagerAdapter adapter;
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main_tab);
            DataForBinding data=getIntent().getParcelableExtra("object");
            getIntent().putExtra("data_all",data);
               }
@覆盖
ActivityCreated上的公共无效(@Nullable Bundle savedinStateCState){
super.onActivityCreated(savedInstanceState);
mChart=(CombinedChart)getView().findViewById(R.id.chart在选项卡中);
DataForBinding data=新建DataForBinding();
ArrayList barEntries=新的ArrayList();
ArrayList烛台;
ArrayList lineEntries=新的ArrayList();
数据=getActivity().getIntent().getParcelableExtra(“数据全部”);
barEntries=data.getBarEntries();
candleEntries=data.getCandleEntries();
lineEntries=data.getLineEntries();
mChart=组合图表助手设置设置(mChart);
LineDataSet set2=新的LineDataSet(lineEntries,“line”);
DataHelper.setLineDataSet(set2);
LineData dataLine=新的LineData(set2);
CandleDataSet set1=新的CandleDataSet(candleEntries,蜡烛);
DataHelper.setCandleDataSet(set1);
烛光数据烛光=新烛光数据(set1);
CombinedData=新CombinedData();
data.setData(数据线);

条目的子类没有实现的
Parcelable
,正如在对的回答中所指出的那样。因此,它们不会反序列化为正确的不变量(
BarEntry
CandleEntry
)等,而是转换为协变的
条目


您必须找到一些解决方法,将原始数据传递给收件人,并在收件人内部输入,或者提取数据的公共存储库,让收件人处理这些数据。

如果您对从一个活动/片段发送到另一个活动/片段有问题,并且这些活动/片段在您的在自己的应用程序中,您可以只使用静态引用。请记住,完成后,将其设置为null。这样做是可以的。有些对象太重/难以使用,例如位图。
Intent intent = new Intent(getActivity(), MainTabActivity.class);
                data = new DataForBinding();
                data.candleEntries=generateCandleData();
                data.barEntries=generateBarData();
                data.lineEntries=generateLineData();
                intent.putExtra("object",data);
                startActivity(intent);
  public class MainTabActivity extends AppCompatActivity {
        Toolbar toolbar;
        TabLayout tabLayout;
        ViewPager viewPager;
        ViewPagerAdapter adapter;
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main_tab);
            DataForBinding data=getIntent().getParcelableExtra("object");
            getIntent().putExtra("data_all",data);
               }
 @Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    mChart = (CombinedChart) getView().findViewById(R.id.chart_in_tab);
    DataForBinding data = new DataForBinding();

    ArrayList<BarEntry> barEntries = new ArrayList<>();
    ArrayList<CandleEntry> candleEntries;
    ArrayList<Entry> lineEntries = new ArrayList<>();

    data = getActivity().getIntent().getParcelableExtra("data_all");

    barEntries = data.getBarEntries();
    candleEntries = data.getCandleEntries();
    lineEntries = data.getLineEntries();

    mChart = CombinedChartHelper.setSettings(mChart);

    LineDataSet set2 = new LineDataSet(lineEntries, "line");
    DataHelper.setLineDataSet(set2);
    LineData dataLine = new LineData(set2);

    CandleDataSet set1 = new CandleDataSet(candleEntries, "candle");
    DataHelper.setCandleDataSet(set1);
    CandleData dataCandle = new CandleData(set1);

    CombinedData data = new CombinedData();

    data.setData(dataLine);