ListView嵌套问题

coffeeroy2 2014-11-01 05:37:08
要实现ListView嵌套ListView的功能,每个Item都是一个ListView。于是想到用ListFragment来实现,结果运行出错了,而且全部是系统错误,我代码的错误一行没有。实在是没招了,求前辈指教!
以下是代码和错误:

package com.example.studylistfragment01;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.app.ListFragment;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;

public class MainActivity extends Activity {
private ListView lvMain;
List<ListFragment> list = new ArrayList<ListFragment>();

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

lvMain = (ListView) findViewById(R.id.listView_main);

ListFragmentImpl listFragmentImpl1 = new ListFragmentImpl();
ListFragmentImpl listFragmentImpl2 = new ListFragmentImpl();
// ListFragmentSelf listFragmentSelf1 = new ListFragmentSelf();
// ListFragmentSelf listFragmentSelf2 = new ListFragmentSelf();

list.add(listFragmentImpl1);
list.add(listFragmentImpl2);

ListAdapter adapter = new ListAdapter(getBaseContext(), list);
lvMain.setAdapter(adapter);

}

private class ListAdapter extends BaseAdapter {
private LayoutInflater liMain;

List<ListFragment> listFrag;

public ListAdapter(Context context, List<ListFragment> listFrag) {
// TODO Auto-generated constructor stub
this.listFrag = listFrag;
liMain = LayoutInflater.from(context);
}

@Override
public int getCount() {
// TODO Auto-generated method stub
return listFrag.size();
}

@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return listFrag.get(position);
}

@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
return null;
}

}

}

下面是ListFragment的代码

package com.example.studylistfragment01;

import android.annotation.SuppressLint;
import android.app.ListFragment;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

@SuppressLint("NewApi")
public class ListFragmentImpl extends ListFragment {
private static final String TAG = "ListFragmentImpl";

private ListView selfList;

@SuppressLint("NewApi")
String[] cities = { "Shenzhen", "Beijing", "Shanghai", "Guangzhou",
"Wuhan", "Tianjing", "Changsha", "Xi'an", "Chongqing", "Guilin", };

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Log.d(TAG, "onCreateView");
return inflater.inflate(R.layout.list_fragment_impl, container, false);
}

@Override
public void onCreate(Bundle savedInstanceState) {
Log.d(TAG, "onCreate");
super.onCreate(savedInstanceState);

this.setListAdapter(new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_1, cities));
}

// public void onListItemClick(ListView parent, View v,
// int position, long id) {
// Log.d(TAG, "onListItemClick");
// Toast.makeText(getActivity(),
// "You have selected " + cities[position],
// Toast.LENGTH_SHORT).show();
// }
}


错误如下:


由于报的都是系统错误,实在不知道从哪儿下手了,求指正,感激不尽!
...全文
117 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_34956397 2016-12-07
  • 打赏
  • 举报
回复
楼主怎么解决的这个问题
coffeeroy2 2014-11-02
  • 打赏
  • 举报
回复
引用 2 楼 svenwang 的回复:
ListAdapter.getView()返回的是null,当然是报空指针异常啦。 你必须要实现这个重载函数。
那为什么只报系统的错误呢 按理说也该我程序有错才对
svenwang 2014-11-02
  • 打赏
  • 举报
回复
引用 3 楼 u014274707 的回复:
[quote=引用 2 楼 svenwang 的回复:] ListAdapter.getView()返回的是null,当然是报空指针异常啦。 你必须要实现这个重载函数。
那为什么只报系统的错误呢 按理说也该我程序有错才对[/quote] return null不会导致异常,在系统的framework里从你的重载函数获得并访问这个null pointer导致异常。 但是从逻辑上说,return null才是错误的根源。
svenwang 2014-11-01
  • 打赏
  • 举报
回复
ListAdapter.getView()返回的是null,当然是报空指针异常啦。 你必须要实现这个重载函数。
coffeeRoy 2014-11-01
  • 打赏
  • 举报
回复
是不支持的原因吗

80,359

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧