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