Android ListView不适用于膨胀视图

Android ListView不适用于膨胀视图,android,listview,android-fragments,android-arrayadapter,Android,Listview,Android Fragments,Android Arrayadapter,若我使用fragment,它不会显示任何条目,但若我在布局中直接向ListView添加适配器,它会工作得很好 有人能解释一下吗 这是我的密码: 主要活动 package com.example.testandroid; import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.ArrayA

若我使用fragment,它不会显示任何条目,但若我在布局中直接向ListView添加适配器,它会工作得很好

有人能解释一下吗

这是我的密码: 主要活动

package com.example.testandroid;

import java.util.ArrayList;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends Activity {

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


        View view = getLayoutInflater().inflate(R.layout.list_fragment, null);
        ListView listv = (ListView) view.findViewById(R.id.ListViewInFragment);
        ListView listv2 = (ListView) findViewById(R.id.listViewInRoot);

        // ListView listv = (ListView) getFragmentManager().findFragmentById(R.id.fragment1).getView().findViewById(R.id.ListView1);

        ArrayList<String> alist = new ArrayList<String>();
        alist.add("text1");
        alist.add("text2");
        alist.add("text3");

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                R.layout.list_view, R.id.listRow, alist);


        listv.setAdapter(adapter);
        listv2.setAdapter(adapter);
    }

}
package com.example.testandroid;
导入java.util.ArrayList;
导入android.app.Activity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
公共类MainActivity扩展了活动{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
视图=GetLayoutFlater()。充气(R.layout.list_片段,空);
ListView listv=(ListView)view.findViewById(R.id.ListViewInFragment);
ListView listv2=(ListView)findViewById(R.id.listViewInRoot);
//ListView listv=(ListView)getFragmentManager().findFragmentById(R.id.fragment1.getView().findViewById(R.id.ListView1);
ArrayList alist=新的ArrayList();
列表。添加(“文本1”);
列表。添加(“文本2”);
列表。添加(“文本3”);
ArrayAdapter=新的ArrayAdapter(此,
R.layout.list_视图,R.id.listRow,列表);
listv.setAdapter(适配器);
listv2.setAdapter(适配器);
}
}
activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.testandroid.MainActivity"
    tools:ignore="MergeRootFrame" >

    <fragment
        android:id="@+id/fragment1"
        android:name="com.example.testandroid.ListFragment"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="1"
        tools:layout="@layout/list_fragment" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="10dp" >

    </LinearLayout>

    <ListView
        android:id="@+id/listViewInRoot"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >

    </ListView>

</LinearLayout>

列表片段

package com.example.testandroid;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class ListFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        return inflater.inflate(R.layout.list_fragment, container, false);
    }
}

<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ListViewInFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

</ListView>
package com.example.testandroid;
导入android.app.Fragment;
导入android.os.Bundle;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
公共类ListFragment扩展了片段{
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
返回充气机。充气(R.layout.list_碎片,容器,假);
}
}
list_view.xml

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

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="- " />

    <TextView
        android:id="@+id/listRow"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView" />

</LinearLayout>


我的意见是在fragments
onCreate(…)
方法中设置适配器。您应该在
ListFragment
s
onViewCreated
方法中为
ListFragment
设置适配器。