为什么我的Android AdapterView在移动到片段后无法工作?

为什么我的Android AdapterView在移动到片段后无法工作?,android,android-fragments,android-adapterview,Android,Android Fragments,Android Adapterview,我正在开发一个从数据库读取数据并在ListView中显示的应用程序。在我将代码从MainActivity.java移到一个片段之前,它一直运行良好。现在,没那么多了。我没有得到任何错误,但是列表不像代码在主活动中时那样填充。这是我之前的片段: 数据视图.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com

我正在开发一个从数据库读取数据并在ListView中显示的应用程序。在我将代码从MainActivity.java移到一个片段之前,它一直运行良好。现在,没那么多了。我没有得到任何错误,但是列表不像代码在主活动中时那样填充。这是我之前的片段:

数据视图.xml

<RelativeLayout 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"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context=".MainActivity"
    tools:showIn="@layout/activity_main">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:layout_below="@+id/top_linear_layout">

        <include layout="@layout/table_header" />

        <ListView
            android:id="@+id/row_of_stats"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"></ListView>

    </LinearLayout>

</RelativeLayout>
现在,这就是我的新片段的样子,它不起作用:

package mypackage.main;

import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;

import mypackage.R;

public class MyFragment extends Fragment {

    private View rootView;
    private DatabaseHelper myDBHelper;
    private Cursor dataCursor;

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

        rootView = inflater.inflate(R.layout.data_view, container, false);

        myDBHelper = new DatabaseHelper(getActivity());

        dataCursor = myDBHelper.getDataCursor();
        String[] fromColumns = {"time", "col1", "col2", "col3", "col4", "col5"};
        int[] toViews = {R.id.time_textview, R.id.col1_textview, R.id.col2_textview, R.id.col3_textview, R.id.col4_textview, R.id.col5_textview};
        mySimpleCursorAdapter = new SimpleCursorAdapter(getActivity(), R.layout.my_data_row_layout, dataCursor, fromColumns, toViews, 0);

        ListView myListView = (ListView) rootView.findViewById(R.id.row_of_stats);
        myListView.setAdapter(mySimpleCursorAdapter);

        return inflater.inflate(R.layout.data_view, container, false);
    }
}

正如我所说,AdapterView工作得很好,并显示了数据列表,但现在它只是空的,没有错误。

您正在两次刷新布局。 更改:


您正在两次刷新布局。 更改:


太棒了,它工作得很好。非常感谢。那么,除了在实际返回语句中,我在哪里对布局进行充气呢?您在这里对布局进行充气:rootView=inflater.inflate(R.layout.data\u视图,container,false);您正在使用此视图查找您的listview等。因此一切都很好,但最后,您再次充气布局,并将此新充气布局返回到容器。啊,好的,我现在看到了。再次感谢您的帮助。@Brian如果答案解决了您的问题,请验证它。@AnixPasBesoin如果您的意思是“接受答案”,我计划这样做。StackOverflow让我等了10分钟才可以。谢谢。太棒了,它工作得很好。非常感谢。那么,除了在实际返回语句中,我在哪里对布局进行充气呢?您在这里对布局进行充气:rootView=inflater.inflate(R.layout.data\u视图,container,false);您正在使用此视图查找您的listview等。因此一切都很好,但最后,您再次充气布局,并将此新充气布局返回到容器。啊,好的,我现在看到了。再次感谢您的帮助。@Brian如果答案解决了您的问题,请验证它。@AnixPasBesoin如果您的意思是“接受答案”,我计划这样做。StackOverflow让我等了10分钟才可以。非常感谢。
package mypackage.main;

import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;

import mypackage.R;

public class MyFragment extends Fragment {

    private View rootView;
    private DatabaseHelper myDBHelper;
    private Cursor dataCursor;

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

        rootView = inflater.inflate(R.layout.data_view, container, false);

        myDBHelper = new DatabaseHelper(getActivity());

        dataCursor = myDBHelper.getDataCursor();
        String[] fromColumns = {"time", "col1", "col2", "col3", "col4", "col5"};
        int[] toViews = {R.id.time_textview, R.id.col1_textview, R.id.col2_textview, R.id.col3_textview, R.id.col4_textview, R.id.col5_textview};
        mySimpleCursorAdapter = new SimpleCursorAdapter(getActivity(), R.layout.my_data_row_layout, dataCursor, fromColumns, toViews, 0);

        ListView myListView = (ListView) rootView.findViewById(R.id.row_of_stats);
        myListView.setAdapter(mySimpleCursorAdapter);

        return inflater.inflate(R.layout.data_view, container, false);
    }
}
return inflater.inflate(R.layout.data_view, container, false);
return rootView;