фрагменты и дноNavigationView - PullRequest
0 голосов
/ 19 июня 2020

введите описание изображения здесь Я новичок в android studio и java. Я создал одну нижнюю навигацию для своего приложения и использовал 3 фрагмента, и все в порядке и работает. но теперь я хочу добавить один seekBar и щелкнуть слушателя на одном из моих фрагментов, но я не смог этого сделать. у меня вопрос в том, в каком представлении или функции жизненного цикла я должен добавить этот прослушиватель щелчков панели поиска? Я хочу добавить этот код в качестве слушателя панели поиска

  seekBar.findViewById(R.id.seekBar);
    textView.findViewById(R.id.textView3);
    seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            textView.setText(progress+"/100");
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {

        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {

        }
    });





**View**
    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/f2"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".SecondFragment">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="32dp"
            android:orientation="vertical"
            android:padding="10dp"
            android:gravity="center"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent">

            <TextView
                android:id="@+id/textView2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:gravity="center"
                android:text="@string/diary_pgae_sleep" />
            <TextView
                android:id="@+id/textView3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textSize="20sp"
                android:layout_marginTop="10dp"
                android:gravity="center"
                android:text="0/24" />

            <SeekBar
                android:id="@+id/seekBar"
                style="@style/AppTheme"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="16dp"
                android:layout_weight="1"
                android:max="24"
                android:progress="0"
                android:progressDrawable="@drawable/track1"
                android:thumb="@drawable/thumb"
                android:thumbTint="@color/colorPrimaryDark"
                android:indeterminate="false"/>
        </LinearLayout>
    </androidx.constraintlayout.widget.ConstraintLayout>


**Code**

    package com.example.myapplication;

    import android.graphics.Color;
    import android.graphics.PorterDuff;
    import android.os.Bundle;

    import androidx.annotation.NonNull;
    import androidx.annotation.Nullable;
    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;


    /**
     * A simple {@link Fragment} subclass.
     * Use the {@link SecondFragment#newInstance} factory method to
     * create an instance of this fragment.
     */
    public class SecondFragment extends Fragment {

        SeekBar seekBar;
        TextView textView;

        // TODO: Rename parameter arguments, choose names that match
        // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
        private static final String ARG_PARAM1 = "param1";
        private static final String ARG_PARAM2 = "param2";

        // TODO: Rename and change types of parameters
        private String mParam1;
        private String mParam2;

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

        /**
         * Use this factory method to create a new instance of
         * this fragment using the provided parameters.
         *
         * @param param1 Parameter 1.
         * @param param2 Parameter 2.
         * @return A new instance of fragment SecondFragment.
         */
        // TODO: Rename and change types and number of parameters
        public static SecondFragment newInstance(String param1, String param2) {
            SecondFragment fragment = new SecondFragment();
            Bundle args = new Bundle();
            args.putString(ARG_PARAM1, param1);
            args.putString(ARG_PARAM2, param2);
            fragment.setArguments(args);
            return fragment;
        }

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);


            if (getArguments() != null) {
                mParam1 = getArguments().getString(ARG_PARAM1);
                mParam2 = getArguments().getString(ARG_PARAM2);
            }

        }

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {

            // Inflate the layout for this fragment
            return inflater.inflate(R.layout.fragment_second, container, false);
        }


    }

1 Ответ

0 голосов
/ 19 июня 2020

Для этого вам действительно нужны отдельные java файлы, которые в объявлении класса расширяют «Фрагмент». Это действительно хорошее видео на YouTube:

https://www.youtube.com/watch?v=bNpWGI_hGGg

Надеюсь, это поможет.

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