Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.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
Java 无法检索片段中的上下文_Java_Android_Android Fragments - Fatal编程技术网

Java 无法检索片段中的上下文

Java 无法检索片段中的上下文,java,android,android-fragments,Java,Android,Android Fragments,我尝试使用多种资源找到解决方案: 但我还是犯了以下错误: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.support.v4.app.FragmentActivity.getApplicationContext()' on a null object reference 任何帮助都将不胜感激。谢谢 我目前的代码: An

我尝试使用多种资源找到解决方案:

  • 但我还是犯了以下错误:

    Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.support.v4.app.FragmentActivity.getApplicationContext()' on a null object reference
    
    任何帮助都将不胜感激。谢谢


    我目前的代码:

    AnalysisActivity.java:

    package com.app.component.fragment;
    
    import android.os.Bundle;
    import android.support.design.widget.TabLayout;
    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentManager;
    import android.support.v4.app.FragmentPagerAdapter;
    import android.support.v4.view.ViewPager;
    import android.support.v7.app.AppCompatActivity;
    import android.support.v7.widget.Toolbar;
    
    import com.material.components.R;
    import com.material.components.fragment.FragmentTabsEvents;
    import com.material.components.fragment.FragmentTabsPerformance;
    import com.material.components.fragment.FragmentTabsRecommendation;
    import com.material.components.utils.Tools;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class AnalysisActivity extends AppCompatActivity {
    
    
        private ViewPager view_pager;
        private TabLayout tab_layout;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_analysis);
            Toolbar toolbar = findViewById(R.id.toolbar);
            setSupportActionBar(toolbar);
    
            getSupportActionBar().setHomeButtonEnabled(true);
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
            Tools.setSystemBarColor(this,R.color.black);
    
            view_pager = findViewById(R.id.view_pager);
            setupViewPager(view_pager);
    
            tab_layout = findViewById(R.id.tab_layout);
            tab_layout.setupWithViewPager(view_pager);
        }
    
        private void setupViewPager(ViewPager viewPager) {
            SectionsPagerAdapter adapter = new SectionsPagerAdapter(getSupportFragmentManager());
            adapter.addFragment(FragmentTabsPerformance.newInstance(), "PERFORMANCE");
            adapter.addFragment(FragmentTabsRecommendation.newInstance(), "RECOMMENDATION");
            adapter.addFragment(FragmentTabsEvents.newInstance(), "EVENTS RELATED TO YOU");
            viewPager.setAdapter(adapter);
        }
    
        private class SectionsPagerAdapter extends FragmentPagerAdapter {
    
            private final List<Fragment> mFragmentList = new ArrayList<>();
            private final List<String> mFragmentTitleList = new ArrayList<>();
    
            public SectionsPagerAdapter(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 onSupportNavigateUp() {
            onBackPressed();
            return  true;
        }
    }
    
    package com.app.component.fragment;
    导入android.os.Bundle;
    导入android.support.design.widget.TabLayout;
    导入android.support.v4.app.Fragment;
    导入android.support.v4.app.FragmentManager;
    导入android.support.v4.app.FragmentPagerAdapter;
    导入android.support.v4.view.ViewPager;
    导入android.support.v7.app.AppActivity;
    导入android.support.v7.widget.Toolbar;
    导入com.material.components.R;
    导入com.material.components.fragment.fragmentTableSevents;
    导入com.material.components.fragment.FragmentTabsPerformance;
    导入com.material.components.fragment.fragments选项卡推荐;
    导入com.material.components.utils.Tools;
    导入java.util.ArrayList;
    导入java.util.List;
    公共类AnalysisActivity扩展了AppCompatActivity{
    私人视图寻呼机视图寻呼机;
    专用表格布局选项卡_布局;
    @凌驾
    创建时受保护的void(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_analysis);
    Toolbar Toolbar=findviewbyd(R.id.Toolbar);
    设置支持操作栏(工具栏);
    getSupportActionBar().setHomeButtonEnabled(true);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    工具。设置颜色(此,R颜色。黑色);
    view\u pager=findviewbyd(R.id.view\u pager);
    设置查看寻呼机(查看寻呼机);
    tab_布局=findViewById(R.id.tab_布局);
    选项卡布局。使用查看页面设置(查看页面);
    }
    专用无效设置ViewPager(ViewPager ViewPager){
    SectionsPagerAdapter=新的SectionsPagerAdapter(getSupportFragmentManager());
    addFragment(FragmentTabsPerformance.newInstance(),“PERFORMANCE”);
    addFragment(fragmentTabsRecommension.newInstance(),“Recommension”);
    addFragment(FragmentTabsEvents.newInstance(),“与您相关的事件”);
    viewPager.setAdapter(适配器);
    }
    私有类SectionsPagerAdapter扩展了FragmentPagerAdapter{
    私有最终列表MFFragmentList=new ArrayList();
    私有最终列表MFFragmentTitleList=new ArrayList();
    公共部分SpagerAdapter(碎片管理器){
    高级经理;
    }
    @凌驾
    公共片段getItem(int位置){
    返回MFFragmentList.get(位置);
    }
    @凌驾
    public int getCount(){
    返回MFFragmentList.size();
    }
    public void addFragment(片段片段,字符串标题){
    添加(片段);
    MFFragmentTitleList.add(标题);
    }
    @凌驾
    公共字符序列getPageTitle(int位置){
    返回MFFragmentTitleList.get(位置);
    }
    }
    @凌驾
    公共布尔onSupportNavigateUp(){
    onBackPressed();
    返回true;
    }
    }
    
    FragmentTabsPerformance.java:

    package com.app.component.fragment;
    
    import android.content.Context;
    import android.graphics.Color;
    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ImageView;
    
    import com.material.components.R;
    import com.material.components.utils.Tools;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import lecho.lib.hellocharts.model.Line;
    import lecho.lib.hellocharts.model.LineChartData;
    import lecho.lib.hellocharts.model.PointValue;
    import lecho.lib.hellocharts.view.LineChartView;
    
    public class FragmentTabsPerformance extends Fragment {
    
        private Context context;
        public FragmentTabsPerformance() {
            this.context = getActivity().getApplicationContext();
            List<PointValue> values = new ArrayList<>();
            values.add(new PointValue(0, 2));
            values.add(new PointValue(1, 4));
            values.add(new PointValue(2, 3));
            values.add(new PointValue(3, 4));
    
            //In most cased you can call data model methods in builder-pattern-like manner.
            Line line = new Line(values).setColor(Color.BLUE).setCubic(true);
            List<Line> lines = new ArrayList<>();
            lines.add(line);
    
            LineChartData data = new LineChartData();
            data.setLines(lines);
    
            LineChartView chart = new LineChartView(this.getContext());
            chart.setLineChartData(data);
        }
    
        public static FragmentTabsPerformance newInstance() {
            FragmentTabsPerformance fragment = new FragmentTabsPerformance();
            return fragment;
        }
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            View root = inflater.inflate(R.layout.fragment_tabs_performance, container, false);
    
            Tools.displayImageOriginal(getActivity(), (ImageView) root.findViewById(R.id.image_1), R.drawable.image_8);
            Tools.displayImageOriginal(getActivity(), (ImageView) root.findViewById(R.id.image_2), R.drawable.image_9);
            Tools.displayImageOriginal(getActivity(), (ImageView) root.findViewById(R.id.image_3), R.drawable.image_15);
            Tools.displayImageOriginal(getActivity(), (ImageView) root.findViewById(R.id.image_4), R.drawable.image_14);
            Tools.displayImageOriginal(getActivity(), (ImageView) root.findViewById(R.id.image_5), R.drawable.image_12);
            Tools.displayImageOriginal(getActivity(), (ImageView) root.findViewById(R.id.image_6), R.drawable.image_2);
            Tools.displayImageOriginal(getActivity(), (ImageView) root.findViewById(R.id.image_7), R.drawable.image_5);
    
            return root;
        }
    }
    
    package com.app.component.fragment;
    导入android.content.Context;
    导入android.graphics.Color;
    导入android.os.Bundle;
    导入android.support.v4.app.Fragment;
    导入android.view.LayoutInflater;
    导入android.view.view;
    导入android.view.ViewGroup;
    导入android.widget.ImageView;
    导入com.material.components.R;
    导入com.material.components.utils.Tools;
    导入java.util.ArrayList;
    导入java.util.List;
    导入lecho.lib.hellocharts.model.Line;
    导入lecho.lib.hellocharts.model.LineChartData;
    导入lecho.lib.hellocharts.model.PointValue;
    导入lecho.lib.hellocharts.view.LineChartView;
    公共类FragmentTabsPerformance扩展了Fragment{
    私人语境;
    公共碎片选项卡性能(){
    this.context=getActivity().getApplicationContext();
    列表值=新的ArrayList();
    添加(新的PointValue(0,2));
    添加(新的PointValue(1,4));
    添加(新的PointValue(2,3));
    添加(新的PointValue(3,4));
    //在大多数情况下,您可以以类似生成器模式的方式调用数据模型方法。
    Line Line=新行(值).setColor(颜色.蓝色).setCubic(真);
    列表行=新的ArrayList();
    行。添加(行);
    LineChartData数据=新的LineChartData();
    数据。设置行(行);
    LineChartView图表=新的LineChartView(this.getContext());
    图表。setLineChartData(数据);
    }
    公共静态碎片选项卡性能newInstance(){
    FragmentTabsPerformance fragment=新的FragmentTabsPerformance();
    返回片段;
    }
    @凌驾
    CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态){
    视图根=充气机。充气(R.layout.fragment\u tabs\u性能,容器,false);
    Tools.displayImageOriginal(getActivity(),(ImageView)root.findViewById(R.id.image\u 1),R.drawable.image\u 8);
    Tools.displayImageOriginal(getActivity(),(ImageView)root.findViewById(R.id.image\u 2),R.drawable.image\u 9);
    Tools.displayImageOriginal(getActivity(),(ImageView)root.findViewById(R.id.image\u 3),R.drawable.image\u 15);
    Tools.displayImageOriginal(getActivity(),(ImageView)root.findViewById(R.id.image\u 4),R.drawable.image\u 14);
    Tools.displayImageOriginal(getActivity(),(ImageView)root.findViewById(R.id.image_5),R.drawable.image_12);
    Tools.displayImageOriginal(getActivity(),(ImageView)root.findViewById(R.id.image_6),R.drawable.image_2);
    Tools.displayImageOriginal(getActivity(),(ImageView)root.findViewById(R.id.image\u 7),R.drawable.image\u 5);
    返回根;
    }
    }
    
    发生此异常的原因是,当片段未附加到活动时,您在构造方法中调用了getActivity()。您可以参考关于生命周期m的