0

The main body of where the source of error should be is below.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //Make a toolbar
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    Toolbar toolbar = findViewById(R.id.my_toolbar);
    setSupportActionBar(toolbar);

    //Initialise drawer widget
    drawer = findViewById(R.id.drawer_layout);
    NavigationView navigationView = findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);

    //Make the drawer widget functional
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.addDrawerListener(toggle);
    toggle.syncState();

    //Ensure it works on startup
    if (savedInstanceState == null) {
        getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new showdata()).commit();
        navigationView.setCheckedItem(R.id.showData);
    }


    //Data coming in from fragment ChangeCal
    Intent intent = getIntent();
    String cal = intent.getStringExtra("Calories");
    String carb = intent.getStringExtra("Carbs");
    String Protein = intent.getStringExtra("Protein");
    String Fat = intent.getStringExtra("Fat");
    boolean bClick= intent.getBooleanExtra("clicked", false);
    boolean rClick = intent.getBooleanExtra("resetClicked", false);
    //Getting the month function from class getTime
    getTime getMonth = new getTime();
    int month = getMonth.getMonth();
    String monthS = "";
    switch (month) {
        case 1:
            monthS = "Jan";
            break;
        case 2:
            monthS = "Feb";
            break;
        case 3:
            monthS = "Mar";
            break;
        case 4:
            monthS = "Apr";
            break;
        case 5:
            monthS = "May";
            break;
        case 6:
            monthS = "Jun";
            break;
        case 7:
            monthS = "Jul";
            break;
        case 8:
            monthS = "Aug";
            break;
        case 9:
            monthS = "Sep";
            break;
        case 10:
            monthS = "Oct";
            break;
        case 11:
            monthS = "Nov";
            break;
        case 12:
            monthS = "Dec";
            break;
        default:
            throw new IllegalStateException("Unexpected value: " + month);
    }

    db = new DBHelper(this);

    String finalMonthS = monthS;
//Sending/altering/deleting data on SQL database, month as primary key and other nutrient values as well
if(bClick){
    int calValue = Integer.parseInt(cal);
    int carbValue = Integer.parseInt(carb);
    int proteinValue = Integer.parseInt(Protein);
    int fatValue = Integer.parseInt(Fat);
    String inMonth = finalMonthS;

    if (statusValue == 0) {
        boolean checkInsertData = db.insertUserData(inMonth, calValue, carbValue, proteinValue, fatValue);
        if (checkInsertData) {
            Toast.makeText(MainActivity.this, "Nutrient data inserted", Toast.LENGTH_LONG).show();
            statusValue = 1;
        } else {
            Toast.makeText(MainActivity.this, "Data input failed, pls input INT value", Toast.LENGTH_LONG).show();
        }
    } else if (statusValue == 1) {
        boolean checkUpdateData1 = db.updateUserData(inMonth, calValue, carbValue, proteinValue, fatValue);
        if (checkUpdateData1) {
            Toast.makeText(MainActivity.this, "Nutrient data updated", Toast.LENGTH_LONG).show();
            statusValue = 1;
        } else {
            Toast.makeText(MainActivity.this, "Data input failed, pls input INT value", Toast.LENGTH_LONG).show();
        }
    }
}
if(rClick){
    boolean checkDeleteData = db.deleteUserData(finalMonthS);
    if(checkDeleteData){
        Toast.makeText(MainActivity.this, "Nutrient data reset", Toast.LENGTH_LONG).show();
        statusValue = 1;
    } else {
        Toast.makeText(MainActivity.this, "Data reset failed", Toast.LENGTH_LONG).show();
    }
}
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
    switch(item.getItemId()){
        case R.id.showData:
            getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new showdata()).commit();
            break;
        case R.id.nav_changeCal:
            getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new ChangeCal()).commit();
            break;
    }
    drawer.closeDrawer(GravityCompat.START);

    return true;
}
//Same thing here found it on yt probs closes the navigation drawer
@Override
public void onBackPressed() {
    if(drawer.isDrawerOpen(GravityCompat.START)){
        drawer.closeDrawer(GravityCompat.START);
    }else {
        super.onBackPressed();
    }
}

This is my main activity's OnCreate method details. I am new to android development and it would be great if you could help me understand what the error is referring to. I don't understand because the RecyclerView the error tells me has no adapter attached is not used in my main activity XML file. I will put that below.

<?xml version="1.0" encoding="utf-8"?>

<androidx.drawerlayout.widget.DrawerLayout
    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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/drawer_layout"
    android:fitsSystemWindows="true"
    tools:context=".MainActivity"
    >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <androidx.appcompat.widget.Toolbar
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@color/nav_back"
            android:id="@+id/my_toolbar"
            android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

    </LinearLayout>
    <com.google.android.material.navigation.NavigationView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:id="@+id/nav_view"
        app:headerLayout="@layout/nav_header"
        app:menu="@menu/drawer_menu">

    </com.google.android.material.navigation.NavigationView>

    <FrameLayout
       android:id="@+id/fragment_container"
    android:layout_width="match_parent"
    android:layout_height="90dp">

</FrameLayout>

</androidx.drawerlayout.widget.DrawerLayout>

All of the above were my code for my main activity class and my main activity XML file. If you think I need to post more details such as the other classes I am using to process information, please do tell me. Thank you so much in advance.

  • 3
    Does this answer your question? [recyclerview No adapter attached; skipping layout](https://stackoverflow.com/questions/29141729/recyclerview-no-adapter-attached-skipping-layout) – Jimale Abdi Jul 15 '21 at 16:25

0 Answers0