Java I';我在设备上运行代码时遇到问题

Java I';我在设备上运行代码时遇到问题,java,android,android-fragments,exception,android-fragmentactivity,Java,Android,Android Fragments,Exception,Android Fragmentactivity,这是我的问题。下面是我的类(Events.java),下面是错误。我继续在我的手机上运行我的代码,但继续得到那个错误。我不知道到底是什么问题,也不知道如何解决。我尝试了所有我查过的东西,但总是出错。请帮帮我,我显然是个笨蛋 package com.androidapp.restart; import android.app.Fragment; import android.app.LoaderManager; import android.app.ProgressDialog; import

这是我的问题。下面是我的类(Events.java),下面是错误。我继续在我的手机上运行我的代码,但继续得到那个错误。我不知道到底是什么问题,也不知道如何解决。我尝试了所有我查过的东西,但总是出错。请帮帮我,我显然是个笨蛋

package com.androidapp.restart;

import android.app.Fragment;
import android.app.LoaderManager;
import android.app.ProgressDialog;
import android.content.ContentUris;
import android.content.CursorLoader;
import android.content.Intent;
import android.content.Loader;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.View; 
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;

import com.getbase.floatingactionbutton.FloatingActionButton;


/**
 * Created by aa215995 on 3/2/2018.
 */

public class Events extends Fragment implements LoaderManager.LoaderCallbacks<Cursor> {

private FloatingActionButton mAddEventButton;
private Toolbar mToolbar;
EventCursorAdapter mCursorAdapter;
EventDbHelper eventDbHelper = new EventDbHelper(getActivity());
ListView eventListView;
ProgressDialog prgDialog;



private static final int VEHICLE_LOADER = 0;

@Nullable
@Override
public ListView onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
    eventListView = (ListView) inflater.inflate(R.layout.nav_events, container, false);


    mToolbar = (Toolbar) getView().findViewById(R.id.toolbar);
    ((AppCompatActivity)getActivity()).setSupportActionBar(mToolbar);
    mToolbar.setTitle("Events");


    eventListView = (ListView) getView().findViewById(R.id.list);
    View emptyView = getView().findViewById(R.id.empty_view);
    eventListView.setEmptyView(emptyView);


    mCursorAdapter = new EventCursorAdapter(getActivity(), null);
    eventListView.setAdapter(mCursorAdapter);


    eventListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {

            Intent intent = new Intent(view.getContext(), AddEvent.class);


            Uri currentVehicleUri = ContentUris.withAppendedId(EventContract.EventEntry.CONTENT_URI, id);

            // Set the URI on the data field of the intent
            intent.setData(currentVehicleUri);

            startActivity(intent);

        }
    });



    mAddEventButton = (FloatingActionButton) getView().findViewById(R.id.fab);

    mAddEventButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(v.getContext(), AddEvent.class);
            startActivity(intent);

        }
    });


    getLoaderManager().initLoader(VEHICLE_LOADER, null, this);
    return eventListView;

}


@Override
public Loader<Cursor> onCreateLoader(int i, Bundle bundle) {
    String[] projection = {
            EventContract.EventEntry._ID,
            EventContract.EventEntry.KEY_TITLE,
            EventContract.EventEntry.KEY_DATE,
            EventContract.EventEntry.KEY_TIME,
            EventContract.EventEntry.KEY_REPEAT,
            EventContract.EventEntry.KEY_REPEAT_NO,
            EventContract.EventEntry.KEY_REPEAT_TYPE,
            EventContract.EventEntry.KEY_ACTIVE

    };

    return new CursorLoader(getActivity(),   // Parent activity context
            EventContract.EventEntry.CONTENT_URI,   // Provider content URI to query
            projection,             // Columns to include in the resulting Cursor
            null,                   // No selection clause
            null,                   // No selection arguments
            null);                  // Default sort order

}

@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
    mCursorAdapter.swapCursor(cursor);

}

@Override
public void onLoaderReset(Loader<Cursor> loader) {
    mCursorAdapter.swapCursor(null);

}
}
这是xml文件(events.xml)

以下是Fragment.java的一节:

if (mFragmentManager != null) {
        writer.print(prefix); writer.print("mFragmentManager=");
        writer.println(mFragmentManager);
    }

您正试图在listview上强制转换布局

将此@id添加到您的线性布局中,并在活动中进行充气

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@id/layout";
tools:context="com.delaroystudiuos.alarmreminder.MainActivity">
这是一个问题:

eventListView = (ListView) inflater.inflate(R.layout.nav_events, container, false); 

您尝试对listview进行充气,但充气器返回所有视图的父视图的线性布局。您需要放大LinearLayout而不是listview,这将导致强制转换异常。

如果您试图访问XML中现有的listview项:

<ListView
android:id="@+id/list"
android:layout_below="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

当我这样做(R.id.nav_事件)时,我得到一个错误,这是因为您的xml中没有id,请尝试我的编辑,它应该可以解决您的问题。请查看上面的答案。您不能充气视图而不是布局。因此,inflagenr.id.nav_事件导致异常。因此,我给我的xml文件一个id,然后输入:LinearLayout ll=(LinearLayout)inflater.inflate(R.id.nav_事件,容器,false);是的,试试看,让我知道
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@id/layout";
tools:context="com.delaroystudiuos.alarmreminder.MainActivity">
LinearLayout ll = (LinearLayout) inflater.inflate(R.layout.layout, container, false);;
eventListView = (ListView) inflater.inflate(R.layout.nav_events, container, false); 
<ListView
android:id="@+id/list"
android:layout_below="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
View view = inflater.inflate(R.layout.nav_events, container, false);    
eventListView = view.findViewById(R.id.list);