如何在列表片段中显示空文本?

时间:2015-02-12 09:14:23

标签: android android-fragments

我正在使用Google Place API查找最近的地方。我在两个标签上显示地图和列表。我做了两个片段。在一个我正在显示地图,在第二个我正在使用列表。我在操作栏上使用了一个editext框。当我运行我的应用程序时,它崩溃并在setListAdapter上给出nullpointer异常。

这是我的ListFragment文件

import android.support.v4.app.ListFragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.aquib.android.place.Place;
import com.aquib.android.place.PlaceAdapter;
import com.aquib.android.place.R;

import java.util.List;

/**
 * Created by dell on 2/9/2015.
 */
public class ListItemFragment extends ListFragment{

    private PlaceAdapter adapter;
    List<Place> placeList;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_list, null);
        TextView emptyTextView = (TextView) view.findViewById(android.R.id.empty);
        emptyTextView.setTextSize(10);
        return view;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        adapter = new PlaceAdapter(getActivity(), placeList);
        setListAdapter(adapter);
    }
}

和我的fragment_list.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="vertical">

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

    <TextView android:id="@id/android:empty"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#FF0000"
        android:text="No data"/>

</LinearLayout>

当我在edittext框中输入并调用place api然后解析json数据时。我编写了Place类,然后在列表中添加了place对象。所以请有人告诉我如何显示空文本。 app在arrayadapter.getCount()方法中显示异常。

1 个答案:

答案 0 :(得分:0)

您的placeList永远不会被初始化。

此外,在onCreateView()中,您应该像这样创建view

View view = inflater.inflate(R.layout.fragment_list, container, false);