Java 尝试设置自定义BaseAdapter时出错

Java 尝试设置自定义BaseAdapter时出错,java,android,adt,baseadapter,Java,Android,Adt,Baseadapter,我刚刚构建了一个扩展BaseAdapter的新类。我相信我已经正确地设置了所有内容,但是,当我试图在片段中设置适配器时,我希望在中使用它,我得到以下错误: 构造函数HomeBase(Home)未定义 HomeBase是我构建的类的名称 下面是BaseAdapter的构造函数(我想添加整个类,但它相当长): } aa下面是将要使用BaseAdapter的片段中的onCreate()方法: @Override public void onCreate(Bundle SavedInstanceStat

我刚刚构建了一个扩展BaseAdapter的新类。我相信我已经正确地设置了所有内容,但是,当我试图在片段中设置适配器时,我希望在中使用它,我得到以下错误:

构造函数HomeBase(Home)未定义

HomeBase是我构建的类的名称

下面是BaseAdapter的构造函数(我想添加整个类,但它相当长):

}

aa下面是将要使用BaseAdapter的片段中的onCreate()方法:

@Override
public void onCreate(Bundle SavedInstanceState){
    super.onCreate(SavedInstanceState);
    list=(ListView)getView().findViewById(R.id.list_view);
    list.setAdapter(new HomeBase(this));
    Log.v(HOME, "onCreate() was called");

}
我现在正在学习Android的所有知识,如果有任何有用的建议,我将不胜感激

谢谢


James

如果要放置适配器的片段继承自
ListFragment

@Override public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    // Initially there is no data 
    setEmptyText("No Data Here");

    // Create an empty adapter we will use to display the loaded data.
    mAdapter = new CustomArrayAdapter(getActivity());
    setListAdapter(mAdapter);
}
或者,如果在
片段中
,请按如下方式移动代码:

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

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

      list=(ListView)view.findViewById(R.id.list_view);
      list.setAdapter(new HomeBase(getActivity()));
      Log.v(HOME, "onCreate() was called");

      return view;
 }

我在这里又做了一次:描述资源路径位置类型构造函数HomeBase(Home)未定义Home.java/deveditii/src/com/amicus/deveditii第43行java问题感谢您这么快的回复!!将使用适配器扩展片段的类。我将代码移到onCreateView()方法中,但仍然得到错误:构造函数HomeBase(Home)未定义更改this
list.setAdapter(new HomeBase(this))
to
list.setAdapter(新的HomeBase(getActivity()),上面我的答案已经正确了!谢谢,使用getActivity()解决了我的错误,但是现在我正在处理一个空指针异常。我很难找到它。好吧,我已经找到了异常抛出的位置,但我不确定如何解决它。它位于onCreate()中:@Override public void onCreate(Bundle SavedInstanceState){super.onCreate(SavedInstanceState);list=(ListView)getView().findViewById(R.id.list_视图);list.setAdapter(new HomeBase(getActivity());Log.v(HOME,“onCreate()被调用”);}这是我从xml中获取listView并使用以下命令将其分配给list对象的行:getView().findViewByID(R.id.list\u视图);07-23 13:01:55.897:W/dalvikvm(6663):threadid=1:线程以未捕获异常退出(group=0x4001d5a0)07-23 13:01:55.897:E/AndroidRuntime(6663):致命异常:main 07-23 13:01:55.897:E/AndroidRuntime(6663):java.lang.NullPointerException 07-23 13:01:55.897:E/AndroidRuntime(6663):在com.amicus.deveditionii.Home.onCreate(Home.java:45)07-23 13:01:55.897:E/AndroidRuntime(6663):在android.support.v4.app.Fragment.performCreate(Fragment.java:1477)07-23 13:01:55.897:E/AndroidRuntime(6663):在android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:904。。。。。。。。。
@Override public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    // Initially there is no data 
    setEmptyText("No Data Here");

    // Create an empty adapter we will use to display the loaded data.
    mAdapter = new CustomArrayAdapter(getActivity());
    setListAdapter(mAdapter);
}
 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {

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

      list=(ListView)view.findViewById(R.id.list_view);
      list.setAdapter(new HomeBase(getActivity()));
      Log.v(HOME, "onCreate() was called");

      return view;
 }