This is my code
package com.packages.digifarm.ui.dashboard;
import android.content.Intent;
import android.os.Bundle;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.cardview.widget.CardView;
import androidx.fragment.app.Fragment;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import com.packages.digifarm.KelembabanTanahAnalisisActivity;
import com.packages.digifarm.KelembabanUdaraAnalisisActivity;
import com.packages.digifarm.LevelKetinggianAirAnalisisActivity;
import com.packages.digifarm.R;
import com.packages.digifarm.SuhuAnalisisActivity;
public class DashboardFragment extends Fragment {
TextView tv_water_level_value, tv_temperature_value, tv_moisture_value, tv_humidity_value;
TextView tv_water_level_stats, tv_temperature_stats, tv_moisture_stats, tv_humidity_stats, tv_weather_stats;
ImageView ic_water, ic_weather_stats;
TextView tv_btn_show_detail_water_level, tv_btn_show_detail_soil_moisture, tv_btn_show_detail_temperature, tv_btn_show_detail_humidity;
CardView water_indicator;
ViewGroup.LayoutParams layoutParams;
DatabaseReference Reference;
String water_level_value, temperature_value, moisture_value, humidity_value, light_value;
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_dashboard, container, false);
tv_water_level_value = view.findViewById(R.id.tv_water_level_value);
tv_temperature_value = view.findViewById(R.id.tv_temperature_value);
tv_moisture_value = view.findViewById(R.id.tv_moisture_value);
tv_humidity_value = view.findViewById(R.id.tv_humidity_value);
tv_water_level_stats = view.findViewById(R.id.tv_water_level_stats);
tv_temperature_stats = view.findViewById(R.id.tv_temperature_stats);
tv_moisture_stats = view.findViewById(R.id.tv_moisture_stats);
tv_humidity_stats = view.findViewById(R.id.tv_humidity_stats);
tv_weather_stats = view.findViewById(R.id.tv_weather_stats);
water_indicator = view.findViewById(R.id.water_indicator);
ic_water = view.findViewById(R.id.ic_water);
ic_weather_stats = view.findViewById(R.id.ic_weather_stats);
Reference = FirebaseDatabase.getInstance().getReference("Current Data");
Reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
water_level_value = snapshot.child("Level Ketinggian Air").getValue().toString();
temperature_value = snapshot.child("Suhu").getValue().toString();
moisture_value = snapshot.child("Kelembaban Tanah").getValue().toString();
humidity_value = snapshot.child("Kelembaban Udara").getValue().toString();
light_value = snapshot.child("Cahaya").getValue().toString();
tv_water_level_value.setText(water_level_value + "%");
tv_temperature_value.setText(temperature_value + "°C");
tv_moisture_value.setText(moisture_value + "%");
tv_humidity_value.setText(humidity_value + "%");
layoutParams = (ViewGroup.LayoutParams)water_indicator.getLayoutParams();
layoutParams.height = Math.round(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, Integer.parseInt(water_level_value), getResources().getDisplayMetrics()));
water_indicator.setLayoutParams(layoutParams);
if(Integer.parseInt(water_level_value) < 30){
tv_water_level_value.setTextColor(getResources().getColor(R.color.red_danger));
tv_water_level_stats.setText("Tersisa Sedikit");
tv_water_level_stats.setTextColor(getResources().getColor(R.color.red_danger));
water_indicator.setCardBackgroundColor(getResources().getColor(R.color.red_danger));
ic_water.setImageResource(R.drawable.ic_water_red);
}
else if(Integer.parseInt(water_level_value) >= 30 && Integer.parseInt(water_level_value) <= 50){
tv_water_level_value.setTextColor(getResources().getColor(R.color.yellow_warning));
tv_water_level_stats.setText("Cukup Banyak");
tv_water_level_stats.setTextColor(getResources().getColor(R.color.yellow_warning));
water_indicator.setCardBackgroundColor(getResources().getColor(R.color.yellow_warning));
ic_water.setImageResource(R.drawable.ic_water_yellow);
}
else if(Integer.parseInt(water_level_value) > 50 && Integer.parseInt(water_level_value) <= 75){
tv_water_level_value.setTextColor(getResources().getColor(R.color.teal_200));
tv_water_level_stats.setText("Lumayan Banyak");
tv_water_level_stats.setTextColor(getResources().getColor(R.color.teal_200));
water_indicator.setCardBackgroundColor(getResources().getColor(R.color.teal_200));
ic_water.setImageResource(R.drawable.ic_water_blue);
}
else if(Integer.parseInt(water_level_value) > 75){
tv_water_level_value.setTextColor(getResources().getColor(R.color.teal_200));
tv_water_level_stats.setText("Lumayan Banyak");
tv_water_level_stats.setTextColor(getResources().getColor(R.color.teal_200));
water_indicator.setCardBackgroundColor(getResources().getColor(R.color.teal_200));
ic_water.setImageResource(R.drawable.ic_water_blue);
}
if(Integer.parseInt(temperature_value) < 26){
tv_temperature_value.setTextColor(getResources().getColor(R.color.teal_200));
tv_temperature_stats.setText("Dingin");
tv_temperature_stats.setTextColor(getResources().getColor(R.color.teal_200));
}
else if(Integer.parseInt(temperature_value) >= 26 && Integer.parseInt(temperature_value) <= 34){
tv_temperature_value.setTextColor(getResources().getColor(R.color.secondary_green));
tv_temperature_stats.setText("Normal");
tv_temperature_stats.setTextColor(getResources().getColor(R.color.secondary_green));
}
else if(Integer.parseInt(temperature_value) > 34){
tv_temperature_value.setTextColor(getResources().getColor(R.color.red_danger));
tv_temperature_stats.setText("Panas");
tv_temperature_stats.setTextColor(getResources().getColor(R.color.red_danger));
}
if(Integer.parseInt(humidity_value) < 20){
tv_humidity_value.setTextColor(getResources().getColor(R.color.red_danger));
tv_humidity_stats.setText("Kering");
tv_humidity_stats.setTextColor(getResources().getColor(R.color.red_danger));
}
else if(Integer.parseInt(humidity_value) >= 20 && Integer.parseInt(humidity_value) <= 40){
tv_humidity_value.setTextColor(getResources().getColor(R.color.yellow_warning));
tv_humidity_stats.setText("Kering");
tv_humidity_stats.setTextColor(getResources().getColor(R.color.yellow_warning));
}
else if(Integer.parseInt(humidity_value) > 40 && Integer.parseInt(humidity_value) <= 70){
tv_humidity_value.setTextColor(getResources().getColor(R.color.secondary_green));
tv_humidity_stats.setText("Normal");
tv_humidity_stats.setTextColor(getResources().getColor(R.color.secondary_green));
}
else if(Integer.parseInt(humidity_value) > 70){
tv_humidity_value.setTextColor(getResources().getColor(R.color.teal_200));
tv_humidity_stats.setText("Lembab");
tv_humidity_stats.setTextColor(getResources().getColor(R.color.teal_200));
}
if(Integer.parseInt(moisture_value) < 20){
tv_moisture_value.setTextColor(getResources().getColor(R.color.red_danger));
tv_moisture_stats.setText("Kering");
tv_moisture_stats.setTextColor(getResources().getColor(R.color.red_danger));
}
else if(Integer.parseInt(moisture_value) >= 20 && Integer.parseInt(moisture_value) <= 40){
tv_moisture_value.setTextColor(getResources().getColor(R.color.yellow_warning));
tv_moisture_stats.setText("Kering");
tv_moisture_stats.setTextColor(getResources().getColor(R.color.yellow_warning));
}
else if(Integer.parseInt(moisture_value) > 40 && Integer.parseInt(moisture_value) <= 70){
tv_moisture_value.setTextColor(getResources().getColor(R.color.secondary_green));
tv_moisture_stats.setText("Normal");
tv_moisture_stats.setTextColor(getResources().getColor(R.color.secondary_green));
}
else if(Integer.parseInt(moisture_value) > 70){
tv_moisture_value.setTextColor(getResources().getColor(R.color.teal_200));
tv_moisture_stats.setText("Lembab");
tv_moisture_stats.setTextColor(getResources().getColor(R.color.teal_200));
}
if(Integer.parseInt(light_value) < 100){
ic_weather_stats.setImageResource(R.drawable.ic_cuaca_cerah_berawan);
tv_weather_stats.setText("Cerah Berawan");
tv_weather_stats.setTextColor(getResources().getColor(R.color.yellow_warning));
}
else if(Integer.parseInt(light_value) >= 100){
ic_weather_stats.setImageResource(R.drawable.ic_cuaca_cerah);
tv_weather_stats.setText("Cerah");
tv_weather_stats.setTextColor(getResources().getColor(R.color.yellow_warning));
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
tv_btn_show_detail_water_level = view.findViewById(R.id.tv_btn_show_detail_water_level);
tv_btn_show_detail_water_level.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(getActivity().getApplicationContext(), LevelKetinggianAirAnalisisActivity.class);
startActivity(i);
}
});
tv_btn_show_detail_soil_moisture = view.findViewById(R.id.tv_btn_show_detail_soil_moisture);
tv_btn_show_detail_soil_moisture.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent k = new Intent(getActivity().getApplicationContext(), KelembabanTanahAnalisisActivity.class);
startActivity(k);
}
});
tv_btn_show_detail_humidity = view.findViewById(R.id.tv_btn_show_detail_humidity);
tv_btn_show_detail_humidity.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent h = new Intent(getActivity().getApplicationContext(), KelembabanUdaraAnalisisActivity.class);
startActivity(h);
}
});
tv_btn_show_detail_temperature = view.findViewById(R.id.tv_btn_show_detail_temperature);
tv_btn_show_detail_temperature.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent_data = new Intent(getActivity().getApplicationContext(), SuhuAnalisisActivity.class);
startActivity(intent_data);
}
});
// Inflate the layout for this fragment
return view;
}
@Override
public void onResume() {
super.onResume();
TextView txt_adds1 = getActivity().findViewById(R.id.txt_adds1);
TextView txt_adds2 = getActivity().findViewById(R.id.txt_adds2);
ImageView imgview_bg_appbar = getActivity().findViewById(R.id.imgview_bg_appbar);
imgview_bg_appbar.setImageResource(R.drawable.bg_appbar_dashboard);
txt_adds1.setText("Berkebun kini lebih mudah dengan");
txt_adds2.setText("digiFarm");
txt_adds2.setTextSize(TypedValue.COMPLEX_UNIT_PT, 12);
}
}
I have an error like this
E/AndroidRuntime: FATAL EXCEPTION: main Process: com.packages.digifarm, PID: 22408 java.lang.IllegalStateException: Fragment DashboardFragment{3b25dc9} (18f94298-cd27-4447-9c7e-59cb2f952f50) not attached to a context. at androidx.fragment.app.Fragment.requireContext(Fragment.java:900) at androidx.fragment.app.Fragment.getResources(Fragment.java:964) at com.packages.digifarm.ui.dashboard.DashboardFragment$1.onDataChange(DashboardFragment.java:82) at com.google.firebase.database.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:75) at com.google.firebase.database.core.view.DataEvent.fire(DataEvent.java:63) at com.google.firebase.database.core.view.EventRaiser$1.run(EventRaiser.java:55) at android.os.Handler.handleCallback(Handler.java:883) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:237) at android.app.ActivityThread.main(ActivityThread.java:7948) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1075)