Ошибка: попытка вызвать виртуальный метод 'android .view.View android .view.View.findViewById (int)' для ссылки на пустой объект - PullRequest
0 голосов
/ 06 января 2020

Я кодирую свое самое первое приложение, и я уже столкнулся с проблемой ... Я хочу создать панель поиска с динамическим c текстом. Я могу заставить эту работу работать, но я кодирую фрагмент, поэтому мой код выглядит так:

package letit.free.nocookplease.modele;


import android.os.Bundle;

import androidx.fragment.app.Fragment;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.SeekBar;
import android.widget.TextView;

import java.util.ArrayList;

import letit.free.nocookplease.R;

public class AccountFragment extends Fragment {

    TextView textView;
    SeekBar seekBar;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        textView = getView().findViewById(R.id.budget);
        seekBar = getView().findViewById(R.id.budgetBar);
        seekBar.setMax(2);
        seekBar.setProgress(0);

        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                ArrayList<String> criteres= new ArrayList<>();
                criteres.add (0, "Flemme");
                criteres.add (1, "Pourquoi pas");
                criteres.add (2, "L'âme d'un chef !");
                if (progress == 0) {
                    textView.setText ("" + progress +criteres.get(0) + "");
                } else if (progress == 1) {
                    textView.setText ("" + progress + criteres.get(1) + "");
                } else {
                    textView.setText ("" + progress +criteres.get(2) + "");
                }

            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        });
        return inflater.inflate(R.layout.fragment_account, container, false);
    }



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

И мой xml:

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="9dp"
        android:layout_weight="1"
        android:orientation="vertical">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Budget"
            android:textAlignment="center"
            android:textSize="20sp" />

        <SeekBar
            android:id="@+id/budgetBar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

        <TextView
            android:id="@+id/budget"
            android:layout_width="187dp"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:textAppearance="?android:attr/textAppearanceMedium" />

    </LinearLayout>

Я получая следующую ошибку: «Попытка вызвать виртуальный метод 'android .view.View android .view.View.findViewById (int)' для нулевой ссылки на объект», и я не понимаю, почему, так как мой java Кажется, файл правильно связан с моим xml: /

...