您的内容必须有一个 ListView,其 id 属性是 'android.R.id.list' 我正在尝试创建一个 listfragment

Your content must have a ListView whose id attribute is 'android.R.id.list' im trying to create a listfragment

我是 android 工作室的新手,我正在尝试创建一个带有列表的片段并将其显示在我用来显示所有片段的抽屉 class 上,我已经阅读了很多 post 但我找不到我要找的答案,让我把我的代码粘贴给你,你可以检查一下。

布局代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ListView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/lista"
        android:layout_gravity="center_horizontal" />
</LinearLayout>

片段class代码:

public class FragmentoPrincipalChofer extends ListFragment {
    private List<ParseObject> mViaje;
    private ListView mLista;

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

        View x = inflater.inflate(R.layout.fragmento_principal_chofer, container, false);
        mLista = (ListView)x.findViewById(R.id.lista);
        String[] nombres= new String[2];
        nombres[0]="gaston";
        nombres[1]="gaston";
        ArrayAdapter<String> adaptador = new ArrayAdapter<String>(getContext(), android.R.layout.simple_list_item_1, nombres);
        mLista.setAdapter(adaptador);

        return x;

    }

抽屉class代码:

public class DrawerPrincipal extends AppCompatActivity
    implements NavigationView.OnNavigationItemSelectedListener,FragmentoPrincipalUsuario.OnFragmentInteractionListener {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_drawer_principal);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    //cargar fragment principal usuario

    FragmentoPrincipalChofer fragmento=(FragmentoPrincipalChofer) getSupportFragmentManager().findFragmentByTag("fragmento");
    if (fragmento==null){
        fragmento=new FragmentoPrincipalChofer();
        android.support.v4.app.FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
        transaction.add(android.R.id.content,fragmento,"fragmento");
        transaction.commit();

    }


    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.setDrawerListener(toggle);
    toggle.syncState();

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);
}

您正在使用 ListFragment 所以...

ListFragment has a default layout that consists of a single list view. However, if you desire, you can customize the fragment layout by returning your own view hierarchy from onCreateView(LayoutInflater, ViewGroup, Bundle). To do this, your view hierarchy must contain a ListView object with the id "@android:id/list" (or list if it's in code)

ListViewXML改成下面的

<ListView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@android:id/list"
    android:layout_gravity="center_horizontal" />

以及您对它的引用

mLista = (ListView)x.findViewById(android.R.id.list);