'void android.widget.ImageView.setImageResource(int)'对我的意图上的null对象引用接收arrayList数据

时间:2018-05-09 15:14:43

标签: android android-intent arraylist nullpointerexception

我已经阅读了所有类似的问题,但我的arraylist问题...我没有找到解决方案。我试图将我的数组列表中的数据传递到我的第三个活动中,以查看漫画书页面的完整图像。我得到nullpointerexeption。

这是我的第三项活动的代码:

model_dt_till

由于我正在使用回收站视图,我制作了一个回收器适配器,在这里我将把数据传递到第三个活动的意图:

runTime

这是第二个活动是我的整个数组列表:

package com.example.android.glidegalleryevilsecret;


import android.content.Intent;
import android.graphics.Matrix;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.ScaleGestureDetector;
import android.widget.ImageView;
import android.widget.Toast;

public class PageActivity extends AppCompatActivity {

Toolbar toolbar;
Matrix matrix = new Matrix();
Float scale = 1f;
ScaleGestureDetector SGD;
private ImageView img;

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

    toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    if (getSupportActionBar() != null) {
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
    }

    //receive data
    Intent intent = getIntent();
    int image = intent.getExtras().getInt("Thumbnail");

    //set value
    img.setImageResource(image);
    img = findViewById(R.id.pageImage);

    img.setOnTouchListener(new OnSwipeTouchListener(PageActivity.this) {
        public void onSwipeTop() {
            Toast.makeText(PageActivity.this, "top", Toast.LENGTH_SHORT).show();
        }

        public void onSwipeRight() {
            Toast.makeText(PageActivity.this, "right", Toast.LENGTH_SHORT).show();
        }

        public void onSwipeLeft() {
            Toast.makeText(PageActivity.this, "left", Toast.LENGTH_SHORT).show();
        }

        public void onSwipeBottom() {
            Toast.makeText(PageActivity.this, "bottom", Toast.LENGTH_SHORT).show();
        }

    });

    SGD = new ScaleGestureDetector(this, new ScaleListener());
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    SGD.onTouchEvent(event);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId() == android.R.id.home)
        finish();
    return super.onOptionsItemSelected(item);
}

private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
    @Override
    public boolean onScale(ScaleGestureDetector detector) {
        scale = scale * detector.getScaleFactor();
        scale = Math.max(0.1f, Math.min(scale, 5f));
        matrix.setScale(scale, scale);
        img.setImageMatrix(matrix);
        return true;
    }
  }
}

1 个答案:

答案 0 :(得分:1)

这是因为您在绑定视图之前设置了图像资源。

尝试颠倒顺序:

img = findViewById(R.id.pageImage);
img.setImageResource(image);