SwipeListView使用的NullPointerException [英] SwipeListView usage NullPointerException

查看:152
本文介绍了SwipeListView使用的NullPointerException的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图用 SwipeListView ,但是当我在我的应用程序触碰某个项目,它会崩溃,日志信息有:

I'm trying to use SwipeListView, but when I touch an item on my app, it's will be crash, the log info is there:

05-26 21:52:26.545: E/AndroidRuntime(19862): java.lang.NullPointerException
05-26 21:52:26.545: E/AndroidRuntime(19862): at com.fortysevendeg.android.swipelistview.SwipeListViewTouchListener.setFrontView(SwipeListViewTouchListener.java:121)
05-26 21:52:26.545: E/AndroidRuntime(19862): at com.fortysevendeg.android.swipelistview.SwipeListViewTouchListener.onTouch(SwipeListViewTouchListener.java:485)
05-26 21:52:26.545: E/AndroidRuntime(19862): at com.fortysevendeg.android.swipelistview.SwipeListView.onInterceptTouchEvent(SwipeListView.java:481)

我用它一步一步

import android.app.Activity;
import android.os.Bundle;
import com.fortysevendeg.android.swipelistview.SwipeListView;
import com.mkyong.android.adaptor.MobileArrayAdapter;

public class ListMobileActivity extends Activity {

    static final String[] MOBILE_OS = new String[] { "Android", "iOS",
            "WindowsMobile", "Blackberry"};

    MobileArrayAdapter myad ;
    private SwipeListView swipeListView;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mainactivity);  
        swipeListView =(SwipeListView)findViewById(R.id.book_listview);
        myad=new MobileArrayAdapter(this, MOBILE_OS);
        swipeListView.setAdapter(myad); 

    }

}

下面是我的布局文件

<?xml version="1.0" encoding="UTF-8"?>
android:id="@+id/LinearLayoutListView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF" >

xmlns:swipe="http://schemas.android.com/apk/res-auto"
android:id="@+id/book_listview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:listSelector="#00000000"
swipe:swipeActionLeft="dismiss"
swipe:swipeBackView="@+id/back"
swipe:swipeCloseAllItemsWhenMoveList="true"
swipe:swipeFrontView="@+id/front"
swipe:swipeMode="both" />

难道有什么我错过?谢谢

Did there anything I miss? Thanks

推荐答案

只需确保布局在你所适配器夸大包含 @ + ID /回 @ + ID /前部分。

Just ensure that layout you are inflating in you adapter contains @+id/back and @+id/front components.

在换句话说,如果你SwipeListView声明声明 @ + ID /回 @ + ID /前作为刷卡意见...

In other words, if your SwipeListView declaration declares @+id/back and @+id/front as swipe views ...

    <...SwipeListView
        android:id="@+id/swipe_list"
        android:layout_width="match_parent"
        android:layout_weight="1.0"
        android:layout_height="0dp"
        app:swipeFrontView="@+id/front" <=====
        app:swipeBackView="@+id/back" <=====
        app:swipeActionLeft="dismiss"
        app:swipeCloseAllItemsWhenMoveList="true"
        app:swipeMode="both"
    />

...然后,预期这在您适配器膨胀布局包含这些组件。在实例布局正在膨胀适配器被称为package_row.xml,这里是适配器的文档片断:

... then it is expected that layout which you inflate in your adapter contains these components. In example the layout being inflated in adapter is called package_row.xml, here is a snipped of adapter:

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    final PackageItem item = getItem(position);
    ViewHolder holder;
    if (convertView == null) {
        LayoutInflater li = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = li.inflate(R.layout.package_row, parent, false);
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        holder = new ViewHolder();
        holder.ivImage = (ImageView) convertView.findViewById(R.id.example_row_iv_image);
        ...
    } else {
        holder = (ViewHolder) convertView.getTag();
    }
    ...

这篇关于SwipeListView使用的NullPointerException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆