当我切换到另一个包含回收者视图的活动时,应用程序崩溃

涡流

从主要活动单击图像视图切换到第二个活动时,它崩溃。我可以切换到第二个活动,直到实现回收视图。我猜测布局管理器存在某种问题。

activity_second.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

<android.support.v7.widget.RecyclerView

    android:id="@+id/recyclerView"

    android:layout_width="match_parent"

    android:layout_height="match_parent" />

HomeItemAdapter.java

public class HomeItemAdapter extends RecyclerView.Adapter<HomeItemAdapter.ViewHolder> {
private static final String TAG = "NTR-HomeItemAdapter";

//    private String[] mDataSet;
public ArrayList<HashMap<String, String>> mDataSource;
private Context mContext;

public HomeItemAdapter(Context context, ArrayList<HashMap<String, String>> mDataSource) {
    this.mDataSource = mDataSource;
    this.mContext = context;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
    View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.row_home_item, viewGroup, false);

    return new ViewHolder(v);
}

@Override
public void onBindViewHolder(final ViewHolder viewHolder, int position) {
    Target target;
    Log.d(TAG, "Element " + position + " set.");

    viewHolder.getName().setText(mDataSource.get(position).get("name"));
    viewHolder.getCity().setText(mDataSource.get(position).get("city"));

    //Get Marquee
    viewHolder.getName().setSingleLine();
    viewHolder.getName().setEllipsize(TextUtils.TruncateAt.MARQUEE);
    viewHolder.getName().setHorizontallyScrolling(true);
    viewHolder.getName().setFocusableInTouchMode(true);
    viewHolder.getName().setSelected(true);
    viewHolder.getName().setMarqueeRepeatLimit(-1);

    viewHolder.getCity().setSingleLine();
    viewHolder.getCity().setEllipsize(TextUtils.TruncateAt.MARQUEE);
    viewHolder.getCity().setHorizontallyScrolling(true);
    viewHolder.getCity().setFocusableInTouchMode(true);
    viewHolder.getCity().setSelected(true);
    viewHolder.getCity().setMarqueeRepeatLimit(-1);

    // Get Dynamic Color
    target = new com.squareup.picasso.Target() {
        @Override
        public void onBitmapLoaded(final Bitmap bitmap, Picasso.LoadedFrom from) {
            Palette.generateAsync(bitmap, new Palette.PaletteAsyncListener() {
                public void onGenerated(Palette palette) {
                    if (palette !=null) {
                        viewHolder.getImageCover().setImageBitmap(bitmap);
                        Palette.Swatch vibrant = palette.getVibrantSwatch();
                        if(vibrant!=null) {
                            viewHolder.getCardItemHome().setBackgroundColor(vibrant.getRgb());
                            viewHolder.getName().setTextColor(vibrant.getTitleTextColor());
                            viewHolder.getCity().setTextColor(vibrant.getTitleTextColor());
                        }
                    }
                }
            });
        }

        @Override
        public void onBitmapFailed(Drawable errorDrawable) {
            viewHolder.getImageCover().setImageResource(R.drawable.cover);
        }

        @Override
        public void onPrepareLoad(Drawable placeHolderDrawable) {

        }
    };
    Log.d(TAG,mDataSource.get(position).get("image_url"));

    Picasso.with(mContext)
            .load(mDataSource.get(position).get("image_url"))
            .into(target);

}

@Override
public int getItemCount() {
    return mDataSource.size();
}

public static class ViewHolder extends RecyclerView.ViewHolder {
    private final CardView cardItemHome;
    private final ImageView imgCover;
    private final TextView txtName;
    private final TextView txtCity;

    public ViewHolder(View v) {
        super(v);
        // Define click listener for the ViewHolder's View.
        v.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.d(TAG, "Element " + getPosition() + " clicked.");
            }
        });
        cardItemHome = (CardView) v.findViewById(R.id.card_item_home);
        txtName = (TextView) v.findViewById(R.id.txt_name);
        txtCity = (TextView) v.findViewById(R.id.txt_city);
        imgCover = (ImageView) v.findViewById(R.id.img_cover);

    }

    public CardView getCardItemHome() {
        return cardItemHome;
    }

    public TextView getName() {
        return txtName;
    }

    public TextView getCity() {
        return txtCity;
    }

    public ImageView getImageCover() {
        return imgCover;
    }

  }

}

SecondActivity.java

public class SecondActivity extends ActionBarActivity {

public ArrayList<HashMap<String, String>> mDataSource;

protected RecyclerView mRecyclerView;
protected RecyclerView.LayoutManager mLayoutManager;
protected HomeItemAdapter mAdapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //Initialize Data Source
    initDataset();

    // BEGIN_INCLUDE(initializeRecyclerView)
    mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView);

    //The LayoutManager defines how elements are laid out.
    mLayoutManager = new GridLayoutManager(this, 3);
    mRecyclerView.setLayoutManager(mLayoutManager);

    mAdapter = new HomeItemAdapter(this, mDataSource);
    // Set CustomAdapter as the adapter for RecyclerView.
    mRecyclerView.setAdapter(mAdapter);
    // END_INCLUDE(initializeRecyclerView)
}


private void initDataset() {
    mDataSource = new ArrayList();
    HashMap<String, String> h1 = new HashMap();
    h1.put("name", "FIFTH HARMONY");
    h1.put("city", "Reflection");
    h1.put("image_url","http://www.azlyrics.com/hot/fifthharmony_B00MS4BUUU.jpg");
    mDataSource.add(h1);

    h1 = new HashMap();
    h1.put("name", "PAPA ROACH");
    h1.put("city", "F.E.A.R.");
    h1.put("image_url","http://www.azlyrics.com/hot/919y0earTjL.jpg");
    mDataSource.add(h1);

    h1 = new HashMap();
    h1.put("name", "Ellie Goulding");
    h1.put("city", "ドラえもん");
    h1.put("image_url","http://cdn1.umg3.net/12/files/2013/07/EG_HD_stan.jpg");
    mDataSource.add(h1);

    h1 = new HashMap();
    h1.put("name", "SAYWECANFLY");
    h1.put("city", "Between The Roses");
    h1.put("image_url","http://www.azlyrics.com/hot/61-TWobzipL.jpg");
    mDataSource.add(h1);

    h1 = new HashMap();
    h1.put("name", "NE-YO");
    h1.put("city", "Non-Fiction");
    h1.put("image_url","http://www.azlyrics.com/hot/81kBXMLAHkL.jpg");
    mDataSource.add(h1);

    h1 = new HashMap();
    h1.put("name", "Frozen");
    h1.put("city", "Frozen Heart Lyrics");
    h1.put("image_url","http://www.stlyrics.com/images/ama/frozen_6430.jpg");
    mDataSource.add(h1);

    h1 = new HashMap();
    h1.put("name", "2NE1");
    h1.put("city", "K-Pop Superstar");
    h1.put("image_url","http://www.billboard.com/files/styles/promo_310/public/media/cl_2ne1_instagram_kpop2014_650-430a.png");
    mDataSource.add(h1);

    h1 = new HashMap();
    h1.put("name", "PAPA ROACH");
    h1.put("city", "F.E.A.R.");
    h1.put("image_url","http://www.azlyrics.com/hot/919y0earTjL.jpg");
    mDataSource.add(h1);

    h1 = new HashMap();
    h1.put("name", "SAYWECANFLY");
    h1.put("city", "Between The Roses");
    h1.put("image_url","http://www.azlyrics.com/hot/61-TWobzipL.jpg");
    mDataSource.add(h1);

    h1 = new HashMap();
    h1.put("name", "NE-YO");
    h1.put("city", "Non-Fiction");
    h1.put("image_url","http://www.azlyrics.com/hot/81kBXMLAHkL.jpg");
    mDataSource.add(h1);

    h1 = new HashMap();
    h1.put("name", "Frozen");
    h1.put("city", "Frozen Heart Lyrics");
    h1.put("image_url","http://www.stlyrics.com/images/ama/frozen_6430.jpg");
    mDataSource.add(h1);

    h1 = new HashMap();
    h1.put("name", "2NE1");
    h1.put("city", "K-Pop Superstar");
    h1.put("image_url","http://www.billboard.com/files/styles/promo_310/public/media/cl_2ne1_instagram_kpop2014_650-430a.png");
    mDataSource.add(h1);
  }

}

日志猫

Process: com.example.sensei.mist, PID: 2193
                                                                   java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.sensei.mist/com.example.sensei.mist.SecondActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView.setLayoutManager(android.support.v7.widget.RecyclerView$LayoutManager)' on a null object reference
                                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
                                                                       at android.app.ActivityThread.access$800(ActivityThread.java:151)
                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
                                                                       at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                       at android.os.Looper.loop(Looper.java:135)
                                                                       at android.app.ActivityThread.main(ActivityThread.java:5254)
                                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                                       at java.lang.reflect.Method.invoke(Method.java:372)
                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
                                                                    Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.RecyclerView.setLayoutManager(android.support.v7.widget.RecyclerView$LayoutManager)' on a null object reference
                                                                       at com.example.sensei.mist.SecondActivity.onCreate(SecondActivity.java:33)
                                                                       at android.app.Activity.performCreate(Activity.java:5990)
                                                                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
                                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
                                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
                                                                       at android.app.ActivityThread.access$800(ActivityThread.java:151) 
                                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
                                                                       at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                       at android.os.Looper.loop(Looper.java:135) 
                                                                       at android.app.ActivityThread.main(ActivityThread.java:5254) 
                                                                       at java.lang.reflect.Method.invoke(Native Method) 
                                                                       at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
                                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
卡拉库里

在SecondActivity中,更改

setContentView(R.layout.activity_main);

setContentView(R.layout.activity_second);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当我单击列表视图项时,应用程序崩溃,而不是打开另一个活动

来自分类Dev

当我单击列表视图项时,应用程序崩溃,而不是打开另一个活动

来自分类Dev

当我转到另一个活动时,我的应用程序不断崩溃

来自分类Dev

从cocos2d-x活动切换到Android上的另一个活动时,应用程序崩溃

来自分类Dev

当我打开另一个活动时,应用程序崩溃

来自分类Dev

切换到另一个应用程序时我的应用程序死亡

来自分类Dev

切换到同一应用程序的另一个窗口

来自分类Dev

如何在非移动应用程序中从一个视图切换到另一个视图而又不破坏旧视图

来自分类Dev

从终端切换到另一个正在运行的应用程序

来自分类Dev

在导航抽屉中打开另一个活动时,应用程序崩溃

来自分类Dev

当我切换到另一个 Excel 文件时,Excel 宏会自行停止运行

来自分类Dev

从一个活动向另一个活动检索值时,应用程序崩溃

来自分类Dev

应用程序从一个活动传递到另一个活动时崩溃

来自分类Dev

从一个活动向另一个活动检索值时,应用程序崩溃

来自分类Dev

将主回收站视图从content_main移到我的res文件中的另一个布局后,应用程序崩溃

来自分类Dev

SWRevealViewController-切换到另一个视图时如何保留前视图

来自分类Dev

如何在运行时从一个应用程序切换到另一个应用程序

来自分类Dev

Android-如何从一个应用程序切换到另一个应用程序?

来自分类Dev

Android-如何从一个应用程序切换到另一个应用程序?

来自分类Dev

如何使用 Appium 从一个本机应用程序切换到另一个本机应用程序?

来自分类Dev

从应用程序主屏幕切换到其他活动时,应用程序崩溃

来自分类Dev

当我单击通知时,打开另一个我的应用程序

来自分类Dev

从UIViewController切换到另一个时,如何保持UILongPressGestureRecognizer处于活动状态

来自分类Dev

当程序使用Material Design从启动器活动转到另一个活动时,应用程序崩溃

来自分类Dev

我在切换到另一个分支git时是否丢失了数据?

来自分类Dev

切换到另一个活动并返回时如何保存活动表单字段

来自分类Dev

切换到另一个活动并返回时如何保存活动表单字段

来自分类Dev

当我使用Android Studio终端切换到另一个分支时,如何刷新项目文件?

来自分类Dev

当我切换到另一个部分时,Bootstrap 导航栏会移动

Related 相关文章

  1. 1

    当我单击列表视图项时,应用程序崩溃,而不是打开另一个活动

  2. 2

    当我单击列表视图项时,应用程序崩溃,而不是打开另一个活动

  3. 3

    当我转到另一个活动时,我的应用程序不断崩溃

  4. 4

    从cocos2d-x活动切换到Android上的另一个活动时,应用程序崩溃

  5. 5

    当我打开另一个活动时,应用程序崩溃

  6. 6

    切换到另一个应用程序时我的应用程序死亡

  7. 7

    切换到同一应用程序的另一个窗口

  8. 8

    如何在非移动应用程序中从一个视图切换到另一个视图而又不破坏旧视图

  9. 9

    从终端切换到另一个正在运行的应用程序

  10. 10

    在导航抽屉中打开另一个活动时,应用程序崩溃

  11. 11

    当我切换到另一个 Excel 文件时,Excel 宏会自行停止运行

  12. 12

    从一个活动向另一个活动检索值时,应用程序崩溃

  13. 13

    应用程序从一个活动传递到另一个活动时崩溃

  14. 14

    从一个活动向另一个活动检索值时,应用程序崩溃

  15. 15

    将主回收站视图从content_main移到我的res文件中的另一个布局后,应用程序崩溃

  16. 16

    SWRevealViewController-切换到另一个视图时如何保留前视图

  17. 17

    如何在运行时从一个应用程序切换到另一个应用程序

  18. 18

    Android-如何从一个应用程序切换到另一个应用程序?

  19. 19

    Android-如何从一个应用程序切换到另一个应用程序?

  20. 20

    如何使用 Appium 从一个本机应用程序切换到另一个本机应用程序?

  21. 21

    从应用程序主屏幕切换到其他活动时,应用程序崩溃

  22. 22

    当我单击通知时,打开另一个我的应用程序

  23. 23

    从UIViewController切换到另一个时,如何保持UILongPressGestureRecognizer处于活动状态

  24. 24

    当程序使用Material Design从启动器活动转到另一个活动时,应用程序崩溃

  25. 25

    我在切换到另一个分支git时是否丢失了数据?

  26. 26

    切换到另一个活动并返回时如何保存活动表单字段

  27. 27

    切换到另一个活动并返回时如何保存活动表单字段

  28. 28

    当我使用Android Studio终端切换到另一个分支时,如何刷新项目文件?

  29. 29

    当我切换到另一个部分时,Bootstrap 导航栏会移动

热门标签

归档