Строка двоичного XML-файла # 7: Ошибка надувания класса android.support.v4.view.ViewPager - PullRequest
0 голосов
/ 01 октября 2019

Я пытаюсь использовать просмотр пейджера в основной деятельности моего приложения, однако, когда я запускаю приложение, я получаю следующую ошибку «Двоичная строка XML-файла # 7: Ошибка надувания класса android.support.v4.view.ViewPager».
Я пробовал другие решения, опубликованные в отношении переполнения стека, но пока ни одно из них не помогло мне.

Ниже мой код MainActivity.java

package com.smartgreen.firebase;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter;
import androidx.viewpager.widget.ViewPager;

import android.os.Bundle;
import android.os.CountDownTimer;

import com.github.anastr.speedviewlib.SpeedView;
import com.ntt.customgaugeview.library.GaugeView;
import android.graphics.Color;
import android.os.Bundle;

import com.github.mikephil.charting.charts.BarChart;
import com.github.mikephil.charting.data.BarData;
import com.github.mikephil.charting.data.BarDataSet;
import com.github.mikephil.charting.data.BarEntry;
import com.github.mikephil.charting.utils.ColorTemplate;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
private FragmentStatePagerAdapter myStatePagerAdapter;

private GaugeView gv_meter;
private GaugeView gv_meter2;
public static class MyPagerAdapter extends FragmentStatePagerAdapter{
    private static int NUM_ITEMS = 3;

    public MyPagerAdapter(FragmentManager fragmentManager){
        super(fragmentManager);
    }

    @Override
    public int getCount() {
        return NUM_ITEMS;
    }

    @NonNull
    @Override
    public Fragment getItem(int position) {
        switch (position){
            case 0:
                return new HumidityMonitorFragment();
            case 1:
                return new SoilMonitorFragment();
            case 2:
                return new TemperatureMonitorFragment();
                default:
                    return null;
        }
    }

    @Nullable
    @Override
    public CharSequence getPageTitle(int position) {
        switch(position){
            case 0:
                return "Humidity";
            case 1:
                return "SoilMonitor";
            case 2:
                return "Temperature";
                default:
                    return "No Title";
        }
    }
}
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ViewPager myViewPager = findViewById(R.id.my_view_pager);
    myStatePagerAdapter = new MyPagerAdapter(getSupportFragmentManager());
    myViewPager.setAdapter(myStatePagerAdapter);
    /*BarChart chart = (BarChart) findViewById(R.id.chart);

  //  BarData data = new BarData(getXAxisValues(), getDataSet());
    //chart.setData(data);
    //chart.setDescription("My Chart");
    //chart.animateXY(2000, 2000);
    //chart.invalidate();
    gv_meter =  findViewById(R.id.gv_meter);
    SpeedView mySpeedView = findViewById(R.id.pointerSpeedometer);
    mySpeedView.speedTo(50);
    gv_meter.setShowRangeValues(true);
    gv_meter.setTargetValue(0);

    CountDownTimer timer = new CountDownTimer(10000, 2) {
        @Override
        public void onTick(long millisUntilFinished) {
            gv_meter.setTargetValue(Float.valueOf(90));
        }

        @Override
        public void onFinish() {
            gv_meter.setTargetValue(Float.valueOf(90));
        }
    };
    timer.start();*/
}
}

Ниже также моя деятельностьmain.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.v4.view.ViewPager
    android:id="@+id/my_view_pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior" >

    <android.support.design.widget.TabLayout
        android:id="@+id/tabLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    </android.support.design.widget.TabLayout>
</android.support.v4.view.ViewPager>
</LinearLayout>

Ответы [ 2 ]

1 голос
/ 02 октября 2019

Вы использовали androidx gradle, поэтому, пожалуйста, измените свой код с androidx

попробуйте этот код

 <androidx.viewpager.widget.ViewPager
     android:layout_width="match_parent"
     android:layout_height="match_parent">

     <com.google.android.material.tabs.TabLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_gravity="top" />

 </androidx.viewpager.widget.ViewPager>
0 голосов
/ 01 октября 2019

Я нашел решение, просто обновив.

<android.support.v4.view.ViewPager>

до

<androidx.viewpager.widget.ViewPager>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...