Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android listview适配器引发异常_Android_Android Listview_Android Adapter_Android Adapterview - Fatal编程技术网

android listview适配器引发异常

android listview适配器引发异常,android,android-listview,android-adapter,android-adapterview,Android,Android Listview,Android Adapter,Android Adapterview,我为包含图像、文本视图和文本框的listview_项构建了一个适配器,我不知道为什么应用程序会抛出异常 class RestaurantAdapter extends BaseAdapter { private static LayoutInflater inflater = null; private ArrayList<HashMap<String, String>> data; Activity activity; public R

我为包含图像、文本视图和文本框的listview_项构建了一个适配器,我不知道为什么应用程序会抛出异常

class RestaurantAdapter extends BaseAdapter {
    private static LayoutInflater inflater = null;
    private ArrayList<HashMap<String, String>> data;
    Activity activity;

    public RestaurantAdapter(Activity activity,
            ArrayList<HashMap<String, String>> data) {
        // TODO Auto-generated constructor stub
        this.activity = activity;
        this.data = data;
        inflater = (LayoutInflater) activity
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

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

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

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        View vi = convertView;
        if (vi == null)
            inflater.inflate(R.layout.restaurant_multi_select_list_item, null);
         TextView name = (TextView) vi
                .findViewById(R.id.restaurant_multi_select_title);
        ImageView image = (ImageView) vi
                .findViewById(R.id.restaurant_multi_select_list_item_image);
        CheckBox cb = (CheckBox) vi
                .findViewById(R.id.restaurant_multi_select_checkBox);
        HashMap<String, String> restaurant = data.get(position);
        name.setText(restaurant.get("name"));
        cb.setSelected(false);
        image.setId(Integer.parseInt(restaurant.get("image")));
        return vi;

    }
}
它仍然抛出异常

如果你想要其他代码,我会给你的

谢谢

编辑 例外情况

01-23 19:45:27.021: E/AndroidRuntime(24106): FATAL EXCEPTION: main
01-23 19:45:27.021: E/AndroidRuntime(24106): java.lang.NullPointerException
01-23 19:45:27.021: E/AndroidRuntime(24106):    at android.widget.AbsListView.obtainView(AbsListView.java:1521)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at android.widget.ListView.makeAndAddView(ListView.java:1749)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at android.widget.ListView.fillDown(ListView.java:674)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at android.widget.ListView.fillFromTop(ListView.java:731)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at android.widget.ListView.layoutChildren(ListView.java:1602)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at android.widget.AbsListView.onLayout(AbsListView.java:1349)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at android.view.View.layout(View.java:7320)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1263)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1137)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at android.widget.LinearLayout.onLayout(LinearLayout.java:1051)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at android.view.View.layout(View.java:7320)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at android.widget.FrameLayout.onLayout(FrameLayout.java:342)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at android.view.View.layout(View.java:7320)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1263)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1137)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at android.widget.LinearLayout.onLayout(LinearLayout.java:1051)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at android.view.View.layout(View.java:7320)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at android.widget.FrameLayout.onLayout(FrameLayout.java:342)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at android.view.View.layout(View.java:7320)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at android.view.ViewRoot.performTraversals(ViewRoot.java:1162)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at android.view.ViewRoot.handleMessage(ViewRoot.java:1882)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at android.os.Handler.dispatchMessage(Handler.java:99)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at android.os.Looper.loop(Looper.java:130)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at android.app.ActivityThread.main(ActivityThread.java:3701)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at java.lang.reflect.Method.invokeNative(Native Method)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at java.lang.reflect.Method.invoke(Method.java:507)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624)
01-23 19:45:27.021: E/AndroidRuntime(24106):    at dalvik.system.NativeStart.main(Native Method)
新的例外 我想

vi = inflater.inflate(R.layout.restaurant_multi_select_list_item, null);

如果
vi==null
则必须将充气机设置为
vi
。否则,您将尝试从零或
null

比如说

if (vi == null)
       vi = inflater.inflate(R.layout.restaurant_multi_select_list_item, null);

发布LogCat以便我们可以帮助解决哪个异常?我在你的帖子中看不到任何内容…非常感谢,+1代表你,我接受Mistsuaki的回答,因为他先回答我,同样的例外?如果没有发布新的one@tyczjj我发布了一个新的例外,即值
restaurant
为null(但如果它通过
restaurant.get(“name”)
它可能不是),或者“image”的数据为null或不正确,很难从给出的内容中分辨出来,在那里设置一个断点,在将图像值传递到
ImageView
之前查看图像值。您可以访问窗口中的所有视图>显示视图并选择您想要的视图。它可以正常工作,但当我尝试滚动项目时,我遇到了一个异常,为什么?请告诉我您的堆栈跟踪?(例外)谢谢!您能给我看看Select_Multi_Restaurants.java的第133行吗?没有133行:),它只是119行,可能与您的问题无关。*如果vi(=convertView)不是null…,会发生什么情况?*每次分配每个列表项数据时,都会调用findViewById。这不是更快的ListView。查看以下URL?('ω`)
vi = inflater.inflate(R.layout.restaurant_multi_select_list_item, null);
if (vi == null)
       vi = inflater.inflate(R.layout.restaurant_multi_select_list_item, null);