这个片段内部类应该是静态的(com.apppackage.FragmentOne)[ValidFragment]

时间:2016-08-12 21:06:20

标签: java android android-fragments

我在下面的代码中遇到以下错误,任何人都可以指导我这里错了吗?

public class FragmentTwo extends Fragment implements OnClickListener {
        ImageView imageSection, imageClose, imageView;
        TextView tvTitle, tvFeatureOne, tvFeatureTwo, tvFeatureThree, tvFeatureFour, tvFeatureFive;
        ImageView imageFeatureOne, imageFeatureTwo, imageFeatureThree, imageFeatureFour, imageFeatureFive;

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_get_tour, container, false);
            imageSection = (ImageView) rootView.findViewById(R.id.imageSection);
            imageSection.setImageResource(R.drawable.tour2);
            imageClose = (ImageView) rootView.findViewById(R.id.imageClose);
            imageClose.setOnClickListener(this);
            imageView = (ImageView) rootView.findViewById(R.id.imageGetTour);
            tvTitle = (TextView) rootView.findViewById(R.id.tvTitle);
            tvTitle.setText(Splash.getTourList.get(1).getTitle());
            loader.DisplayImage(Splash.getTourList.get(1).getImage(), imageView);
            String string = Splash.getTourList.get(1).getFeature();
            String strin[] = string.split(":");
            for (int i = 0; i < strin.length; i++) {
                switch (i) {
                    case 0:
                        tvFeatureOne = (TextView) rootView.findViewById(R.id.tvFeatureOne);
                        tvFeatureOne.setText(strin[i]);
                        tvFeatureOne.setVisibility(View.VISIBLE);
                        imageFeatureOne = (ImageView) rootView.findViewById(R.id.imageFeatureOne);
                        imageFeatureOne.setVisibility(View.VISIBLE);
                        break;

                    case 1:
                        tvFeatureTwo = (TextView) rootView.findViewById(R.id.tvFeatureTwo);
                        tvFeatureTwo.setText(strin[i]);
                        tvFeatureTwo.setVisibility(View.VISIBLE);
                        imageFeatureTwo = (ImageView) rootView.findViewById(R.id.imageFeatureTwo);
                        imageFeatureTwo.setVisibility(View.VISIBLE);
                        break;
                    case 2:
                        tvFeatureThree = (TextView) rootView.findViewById(R.id.tvFeatureThree);
                        tvFeatureThree.setText(strin[i]);
                        tvFeatureThree.setVisibility(View.VISIBLE);
                        imageFeatureThree = (ImageView) rootView.findViewById(R.id.imageFeatureThree);
                        imageFeatureThree.setVisibility(View.VISIBLE);
                        break;
                    case 3:
                        tvFeatureFour = (TextView) rootView.findViewById(R.id.tvFeatureFour);
                        tvFeatureFour.setText(strin[i]);
                        tvFeatureFour.setVisibility(View.VISIBLE);
                        imageFeatureFour = (ImageView) rootView.findViewById(R.id.imageFeatureFour);
                        imageFeatureFour.setVisibility(View.VISIBLE);
                        break;
                    case 4:
                        tvFeatureFive = (TextView) rootView.findViewById(R.id.tvFeatureFive);
                        tvFeatureFive.setText(strin[i]);
                        tvFeatureFive.setVisibility(View.VISIBLE);
                        imageFeatureFive = (ImageView) rootView.findViewById(R.id.imageFeatureFive);
                        imageFeatureFive.setVisibility(View.VISIBLE);
                        break;
                }
            }
            return rootView;
        }

        @Override
        public void onClick(View v) {
            finishActivity();
        }
    }

1 个答案:

答案 0 :(得分:0)

要实现相同的功能,请将片段创建为不同的类。 onClick()应该调用 - getActivity()。finishActivity();

原因是片段不应该绑定到外部类并且具有默认构造函数,因为操作系统可以重新创建它。