【发布时间】:2014-06-05 08:51:19
【问题描述】:
我在活动布局上有一个自定义 ListView(Bauerca 的 DragSortListView),当我启动活动时,它会抛出 NullPointerException 并关闭应用程序,但是当我下次启动此活动时 - 它工作正常。我怎样才能消除这个错误。 日志
06-05 14:47:13.218: E/AndroidRuntime(498): FATAL EXCEPTION: main
06-05 14:47:13.218: E/AndroidRuntime(498): java.lang.NullPointerException
06-05 14:47:13.218: E/AndroidRuntime(498): at android.view.ViewGroup.addView(ViewGroup.java:1821)
06-05 14:47:13.218: E/AndroidRuntime(498): at android.view.ViewGroup.addView(ViewGroup.java:1808)
06-05 14:47:13.218: E/AndroidRuntime(498): at com.mobeta.android.dslv.DragSortListView$AdapterWrapper.getView(DragSortListView.java:739)
06-05 14:47:13.218: E/AndroidRuntime(498): at android.widget.AbsListView.obtainView(AbsListView.java:1430)
06-05 14:47:13.218: E/AndroidRuntime(498): at android.widget.ListView.makeAndAddView(ListView.java:1745)
06-05 14:47:13.218: E/AndroidRuntime(498): at android.widget.ListView.fillDown(ListView.java:670)
06-05 14:47:13.218: E/AndroidRuntime(498): at android.widget.ListView.fillFromTop(ListView.java:727)
06-05 14:47:13.218: E/AndroidRuntime(498): at android.widget.ListView.layoutChildren(ListView.java:1584)
06-05 14:47:13.218: E/AndroidRuntime(498): at com.mobeta.android.dslv.DragSortListView.layoutChildren(DragSortListView.java:2136)
06-05 14:47:13.218: E/AndroidRuntime(498): at android.widget.AbsListView.onLayout(AbsListView.java:1260)
06-05 14:47:13.218: E/AndroidRuntime(498): at android.view.View.layout(View.java:7175)
06-05 14:47:13.218: E/AndroidRuntime(498): at android.widget.RelativeLayout.onLayout(RelativeLayout.java:912)
06-05 14:47:13.218: E/AndroidRuntime(498): at android.view.View.layout(View.java:7175)
06-05 14:47:13.218: E/AndroidRuntime(498): at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
06-05 14:47:13.218: E/AndroidRuntime(498): at android.view.View.layout(View.java:7175)
06-05 14:47:13.218: E/AndroidRuntime(498): at android.widget.FrameLayout.onLayout(FrameLayout.java:338)
06-05 14:47:13.218: E/AndroidRuntime(498): at android.view.View.layout(View.java:7175)
06-05 14:47:13.218: E/AndroidRuntime(498): at android.view.ViewRoot.performTraversals(ViewRoot.java:1140)
06-05 14:47:13.218: E/AndroidRuntime(498): at android.view.ViewRoot.handleMessage(ViewRoot.java:1859)
06-05 14:47:13.218: E/AndroidRuntime(498): at android.os.Handler.dispatchMessage(Handler.java:99)
06-05 14:47:13.218: E/AndroidRuntime(498): at android.os.Looper.loop(Looper.java:123)
06-05 14:47:13.218: E/AndroidRuntime(498): at android.app.ActivityThread.main(ActivityThread.java:3683)
06-05 14:47:13.218: E/AndroidRuntime(498): at java.lang.reflect.Method.invokeNative(Native Method)
06-05 14:47:13.218: E/AndroidRuntime(498): at java.lang.reflect.Method.invoke(Method.java:507)
06-05 14:47:13.218: E/AndroidRuntime(498): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
06-05 14:47:13.218: E/AndroidRuntime(498): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
06-05 14:47:13.218: E/AndroidRuntime(498): at dalvik.system.NativeStart.main(Native Method)
适配器
private class OrderAdapter extends ArrayAdapter<Order>{
public OrderAdapter(List<Order> list) {
super(MainActivity.this, R.layout.order_list_item,R.id.address,list);
}
public View getView(int position, View convertView, ViewGroup parent) {
View v = super.getView(position, convertView, parent);
TextView item=(TextView) v.findViewById(R.id.address);
TextView subitem=(TextView) v.findViewById(R.id.client);
item.setTextColor(Color.WHITE);
subitem.setTextColor(Color.WHITE);
item.setText(getItem(position).order_address);
subitem.setText(getItem(position).order_client);
TextView pos = (TextView) v.findViewById(R.id.pos_number);
pos.setText(String.valueOf(getItem(position).position_number));
ImageView state = (ImageView) v.findViewById(R.id.checkItem);
state.setVisibility(View.VISIBLE);
if (getItem(position).order_status == 3)
state.setBackgroundResource(drawable.check_cancelled);
if (getItem(position).order_status == 2)
state.setBackgroundResource(drawable.check_checked);
if (getItem(position).order_status == 0)
state.setBackgroundResource(drawable.check_nb);
if (getItem(position).order_status == 1)
{
state.setVisibility(View.GONE);
}
return v;
正在初始化
c_orders = new ArrayList<Order>();
adapter = new OrderAdapter(c_orders);
myList=(DragSortListView)findViewById(R.id.dsvlist);
myList.setAdapter(adapter);
myList.setDropListener(onDrop);
myList.setRemoveListener(onRemove);
myList.setOnItemClickListener(listener);
【问题讨论】:
-
发布你的代码
-
为了什么?用于初始化列表视图或什么?
-
是的,你在哪里设置适配器的代码?并初始化它
标签: java android android-layout listview nullpointerexception