Где я ошибся в коде : package com.example.myapp_2.UI.view.fragments;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.os.Bundle;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;

import android.os.Environment;
import android.os.Handler;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.RatingBar;
import android.widget.TextView;
import android.widget.Toast;


import com.example.myapp_2.List_1.Product;
import com.example.myapp_2.List_1.ProductAdapter;
import com.example.myapp_2.R;
import com.example.myapp_2.Shop;
import com.example.myapp_2.UI.view.adapters.SliderAdapter;
import com.example.myapp_2.USERSDB.DBHelper;
import com.example.myapp_2.User;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;


public class FirstFragment extends Fragment implements View.OnClickListener ,RatingBar.OnRatingBarChangeListener {
private ListView userListView;
private Button updateButton;
private Shop shop;
private Button mShareButton;

private RecyclerView recyclerView;
private ProductAdapter productAdapter;


private RatingBar ratingBar;
private TextView ratingAverageTextView;


private ViewPager viewPager;
private int[] imageUrls = {R.drawable.first_1, R.drawable.first_2, R.drawable.first_3, R.drawable.first_4, R.drawable.first_5};
private List<Product> products = getProducts();
private static final String MY_PREFS_NAME = “MyPrefs”;
private float rating1 = 0.0f;
private float rating2 = 0.0f;
private float rating3 = 0.0f;
private float rating4 = 0.0f;
private float rating5 = 0.0f;
private float rating6 = 0.0f;
private float rating7 = 0.0f;
private float rating8 = 0.0f;
private float rating9 = 0.0f;
private float rating10 = 0.0f;



EditText mEditText;

private static final String TAG = “FirstFragment”;

private long noteId;

public FirstFragment(long noteId) {
this.noteId = noteId;
}
public FirstFragment() {

}


// private ViewPager viewPager;


// EditText mEditText;

public void createFile(String fileName, String fileContent) {//Реализовать создание текстового файла в app-specific storage.
try {
FileOutputStream fos = requireContext().openFileOutput(fileName, Context.MODE_PRIVATE);
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fos);
outputStreamWriter.write(fileContent);
outputStreamWriter.close();
String filePath = new File(requireContext().getFilesDir(), fileName).getAbsolutePath(); // получаем абсолютный путь
Log.d(TAG, “File " + fileName + " created successfully at path:” + filePath);
} catch (IOException e) {
e.printStackTrace();
Log.e(TAG, "Failed to create file " + fileName + ": " + e.getMessage());
}
}
public void createTextFileInDirectory(String fileName) {
File directory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
File textFile = new File(directory, fileName);

try {
FileOutputStream fileOutputStream = new FileOutputStream(textFile);
fileOutputStream.write(“Hello World”.getBytes());
fileOutputStream.close();

Toast.makeText(getActivity(), "File created at: " + textFile.getAbsolutePath(), Toast.LENGTH_LONG).show();
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(getActivity(), “Error creating file”, Toast.LENGTH_SHORT).show();
}
}



@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_first, container, false);

userListView = v.findViewById(R.id.user_list_view);

// Создаем адаптер для списка пользователей
ArrayAdapter<User> adapter = new ArrayAdapter<User>(
getActivity(),
android.R.layout.simple_list_item_1,
getAllUsers());

// Присваиваем адаптер списку пользователей
userListView.setAdapter(adapter);

// Регистрируем нового пользователя
User newUser = new User(“Mike”, “mike@email.com”);
registerNewUser(newUser);













updateButton = v.findViewById(R.id.update_button);
shop = new Shop(getActivity()); // передаем объект Activity в конструктор класса Shop
updateButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
shop.updatePrices(); // вызываем метод обновления цен у объекта класса Shop
}
});
























mShareButton = v.findViewById(R.id.btn_3);

mShareButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
shareText();
}
});

recyclerView = v.findViewById(R.id.recycler_view_products);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
productAdapter = new ProductAdapter(getContext(), products);
recyclerView.setAdapter(productAdapter);

productAdapter.setOnAddToCartClickListener(new ProductAdapter.OnAddToCartClickListener() {
@Override
public void onAddToCartClick(Product product) {
Toast.makeText(getActivity(),“Товар успешно добавлен!”,Toast.LENGTH_SHORT).show();
}
});



viewPager = v.findViewById(R.id.view_pager);
// SliderAdapter adapter = new SliderAdapter(getActivity(), imageUrls);
//viewPager.setAdapter(adapter);

// Получаем оценки из SharedPreferences
SharedPreferences prefs = getContext().getSharedPreferences(MY_PREFS_NAME, Context.MODE_PRIVATE);
rating1 = prefs.getFloat(“rating1”, 0.0f);
rating2 = prefs.getFloat(“rating2”, 0.0f);
rating3 = prefs.getFloat(“rating3”, 0.0f);
rating4 = prefs.getFloat(“rating4”, 0.0f);
rating5 = prefs.getFloat(“rating5”, 0.0f);
rating6 = prefs.getFloat(“rating6”, 0.0f);
rating7 = prefs.getFloat(“rating7”, 0.0f);
rating8 = prefs.getFloat(“rating8”, 0.0f);
rating9 = prefs.getFloat(“rating9”, 0.0f);
rating10 = prefs.getFloat(“rating10”, 0.0f);



// Устанавливаем оценки в соответствующие товары
products.get(0).setRating(rating1);
products.get(1).setRating(rating2);
products.get(2).setRating(rating3);
products.get(3).setRating(rating4);
products.get(4).setRating(rating5);
products.get(5).setRating(rating6);
products.get(6).setRating(rating7);
products.get(7).setRating(rating8);
products.get(8).setRating(rating9);
products.get(9).setRating(rating10);

products.get(0).setPrice(300.99);
products.get(1).setPrice(120.99);
products.get(2).setPrice(140.99);
products.get(3).setPrice(420.99);
products.get(4).setPrice(380.99);
products.get(5).setPrice(105.99);
products.get(6).setPrice(200.99);
products.get(7).setPrice(150.99);
products.get(8).setPrice(190.99);
products.get(9).setPrice(299.99);




ViewPager viewPager = v.findViewById(R.id.view_pager);
//MyPagerAdapter adapter = new MyPagerAdapter(getChildFragmentManager());
//viewPager.setAdapter(adapter);
final Handler handler = new Handler();
final Runnable runnable = new Runnable() {
@Override
public void run() {
int currentItem = viewPager.getCurrentItem();
int totalItems = viewPager.getAdapter().getCount();
int nextItem = currentItem == totalItems - 1 ? 0 : currentItem + 1;
viewPager.setCurrentItem(nextItem);
handler.postDelayed(this, 3000);
}
};
handler.postDelayed(runnable, 3000);



return v;
}

private List<Product> getProducts() {
List<Product> products = new ArrayList<>();

Product product1 = new Product(“Product 1”, “Description 1”, R.drawable.food_3_1jpg, 0.0f);
products.add(product1);

Product product2 = new Product(“Product 2”, “Description 2”, R.drawable.food_1_1, 0.0f);
products.add(product2);

Product product3 = new Product(“Product 3”, “Description 3”, R.drawable.food_1_4, 0.0f);
products.add(product3);

Product product4 = new Product(“Product 4”, “Description 4”, R.drawable.food_1_1, 0.0f);
products.add(product4);

Product product5 = new Product(“Product 5”, “Description 5”, R.drawable.food_1_1, 0.0f);
products.add(product5);

Product product6 = new Product(“Product 6”, “Description 6”, R.drawable.food_1_1,0.0f);
products.add(product6);

Product product7 = new Product(“Product 7”, “Description 7”, R.drawable.food_3_2,0.0f);
products.add(product7);

Product product8 = new Product(“Product 8”, “Description 8”, R.drawable.food_3_3,0.0f);
products.add(product8);

Product product9 = new Product(“Product 9”, “Description 9”, R.drawable.food_1_1,0.0f);
products.add(product9);

Product product10 = new Product(“Product 10”, “Description 10”, R.drawable.food_1_1,0.0f);
products.add(product10);

return products;
}


@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {//После того как отрисовались лементы
super.onViewCreated(view,savedInstanceState);
initView(view);

}
private void initView(View view){
Button btnClick = (Button) view.findViewById(R.id.btn_2);
Button btnClick2 = (Button) view.findViewById(R.id.btn_3);
btnClick.setOnClickListener(this);
btnClick2.setOnClickListener(this);

Button btnClick3 = (Button) view.findViewById(R.id.button);
btnClick3.setOnClickListener(this);

Button btnClick4 = (Button) view.findViewById(R.id.change_btn);
btnClick4.setOnClickListener(this);
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);







Bundle bundle = this.getArguments();
if (bundle != null) {
int myInt = bundle.getInt(“hello world”, 123);
String strI = Integer.toString(myInt);
Toast.makeText(getActivity(),strI,Toast.LENGTH_SHORT).show();
}








}

@Override
public void onStart() {
super.onStart();



}

@Override
public void onResume() {
super.onResume();

}

@Override
public void onPause(){
super.onPause();
// Сохраняем оценки в SharedPreferences
SharedPreferences.Editor editor = getContext().getSharedPreferences(MY_PREFS_NAME, Context.MODE_PRIVATE).edit();
editor.putFloat(“rating1”, products.get(0).getRating());
editor.putFloat(“rating2”, products.get(1).getRating());
editor.putFloat(“rating3”, products.get(2).getRating());
editor.putFloat(“rating4”, products.get(3).getRating());
editor.putFloat(“rating5”, products.get(4).getRating());
editor.putFloat(“rating6”, products.get(5).getRating());
editor.putFloat(“rating7”, products.get(6).getRating());
editor.putFloat(“rating8”, products.get(7).getRating());
editor.putFloat(“rating9”, products.get(8).getRating());
editor.putFloat(“rating10”, products.get(9).getRating());
editor.apply();
}

@Override
public void onStop() {
super.onStop();

}

@Override
public void onDestroy() {
super.onDestroy();

}

private void changeFragment(){
getFragmentManager().beginTransaction().replace(R.id.nav_container,new SecondFragment()).addToBackStack(null).commit();
}
private void changeFragment2(){
getFragmentManager().beginTransaction().replace(R.id.nav_container,new ThirdFragment()).addToBackStack(null).commit();
}
private void changeFragment3(){
getFragmentManager().beginTransaction().replace(R.id.nav_container,new ListFragment()).addToBackStack(null).commit();
}
private void changeFragment4(){
getFragmentManager().beginTransaction().replace(R.id.nav_container,new RecycleFragment()).addToBackStack(null).commit();
}
Context context;
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.btn_2:
changeFragment4();
break;
case R.id.btn_3:
sendBroadcast();
//shareText();
//createFile(“test4.txt”, “Мой финальный текстовый документ”);
//createTextFileInDirectory(“test1.txt”);


break;
case R.id.button:

changeFragment3();
break;
case R.id.change_btn:
changeFragment4();
break;
}
}


@Override
public void onRatingChanged(RatingBar ratingBar, float v, boolean b) {

}
@Override
public void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
// Сохраняем оценки в Bundle
outState.putFloat(“rating1”, rating1);
outState.putFloat(“rating2”, rating2);
outState.putFloat(“rating3”, rating3);
outState.putFloat(“rating4”, rating4);
outState.putFloat(“rating5”, rating5);
outState.putFloat(“rating6”, rating6);
outState.putFloat(“rating7”, rating7);
outState.putFloat(“rating8”, rating8);
outState.putFloat(“rating9”, rating9);
outState.putFloat(“rating10”, rating10);
}

@Override
public void onViewStateRestored(@Nullable Bundle savedInstanceState) {
super.onViewStateRestored(savedInstanceState);
if (savedInstanceState != null) {
// Восстанавливаем оценки из Bundle
rating1 = savedInstanceState.getFloat(“rating1”);
rating2 = savedInstanceState.getFloat(“rating2”);
rating3 = savedInstanceState.getFloat(“rating3”);
rating4 = savedInstanceState.getFloat(“rating4”);
rating5 = savedInstanceState.getFloat(“rating5”);
rating6 = savedInstanceState.getFloat(“rating6”);
rating7 = savedInstanceState.getFloat(“rating7”);
rating8 = savedInstanceState.getFloat(“rating8”);
rating9 = savedInstanceState.getFloat(“rating9”);
rating10 = savedInstanceState.getFloat(“rating10”);

// Устанавливаем оценки в соответствующие товары
products.get(0).setRating(rating1);
products.get(1).setRating(rating2);
products.get(2).setRating(rating3);
products.get(3).setRating(rating4);
products.get(4).setRating(rating5);
products.get(5).setRating(rating6);
products.get(6).setRating(rating7);
products.get(7).setRating(rating8);
products.get(8).setRating(rating9);
products.get(9).setRating(rating10);

}
}

private void shareText() {
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, “Hello, world!”);
sendIntent.setType(“text/plain”);

Intent shareIntent = Intent.createChooser(sendIntent, null);
startActivity(shareIntent);
}
private void sendBroadcast() {
Intent intent = new Intent(“com.example.myapp_2.ACTION_RECEIVE_MESSAGE”);
intent.putExtra(“message”, “Hello, world!”);
requireContext().sendBroadcast(intent);
}
private void updatePricesAndNotifyUsers() {
Future<Void> future = shop.updatePricesAndNotifyUsers();
new AsyncTask<Void, Void, Void>() {
@Override
protected Void doInBackground(Void… voids) {
try {
future.get(); // ожидаем завершения выполнения задачи
} catch (ExecutionException | InterruptedException e) {
e.printStackTrace();
}
return null;
}
}.execute();
}
// Регистрация нового пользователя
private void registerNewUser(User user) {
user.addToDatabase(getActivity().getApplicationContext());
Log.d(“Registered user”, user.getName() + " " + user.getEmail());
}
// Получение всех пользователей

private List<User> getAllUsers() {
DBHelper dbHelper = new DBHelper(getActivity());
return dbHelper.getAllUsers();
}
}