Android Studio:java.lang.NullPointerException:尝试对空对象引用调用虚拟方法[ImageButton]
我一直在寻找一个对我有效的答案,但没有找到任何有用的答案 我的问题是我正在将一个Android Studio:java.lang.NullPointerException:尝试对空对象引用调用虚拟方法[ImageButton],java,android,android-intent,nullpointerexception,Java,Android,Android Intent,Nullpointerexception,我一直在寻找一个对我有效的答案,但没有找到任何有用的答案 我的问题是我正在将一个ImageButton链接到另一个活动,但是当单击时会抛出一个NullPointerException 以下是MainActivity课程: package com.example.gpp2; 导入android.content.Intent; 导入android.support.v7.app.AppActivity; 导入android.os.Bundle; 导入android.view.view; 导入andr
ImageButton
链接到另一个活动
,但是当单击时会抛出一个NullPointerException
以下是MainActivity
课程:
package com.example.gpp2;
导入android.content.Intent;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.ImageButton;
公共类MainActivity扩展了AppCompatActivity{
图像按钮添加按钮;
图像按钮登录按钮;
按钮的图像按钮;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addButton=(ImageButton)findViewById(R.id.ImageButton);
addButton.setOnClickListener(新视图.OnClickListener(){
//当按下/单击按钮时,它将运行下面的代码
@凌驾
公共void onClick(视图){
//意图是你用来开始另一项活动的东西
意向意向=新意向(MainActivity.this、AddPage.class);
intent.putExtra(“关键字”,R.drawable.add);
星触觉(意向);
}
});
loginButton=(ImageButton)findViewById(R.id.imageButton5);
loginButton.setOnClickListener(新视图.OnClickListener(){
//当按下/单击按钮时,它将运行下面的代码
@凌驾
公共void onClick(视图){
//意图是你用来开始另一项活动的东西
意向意向=新意向(MainActivity.this,loginH.class);
intent.putExtra(“关键字”,R.drawable.login);
星触觉(意向);
}
});
offerButton=(ImageButton)findViewById(R.id.imageButton4);
offerButton.setOnClickListener(新视图.OnClickListener(){
//当按下/单击按钮时,它将运行下面的代码
@凌驾
公共void onClick(视图){
//意图是你用来开始另一项活动的东西
意向意向=新意向(MainActivity.this、OfferPage.class);
意向。额外支付(“关键字”,R.drawable.moneybag);
星触觉(意向);
}
});
}
}
您可以传递字节数组并获取字节数组,然后制作位图:
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] b = baos.toByteArray();
Intent intent = new Intent(this, ActivityB.class);
intent.putExtra("picture", b);
startActivity(intent);
在活动B中,您通过字节数组(解码图片)接收意图,并将其作为源应用于ImageView:
Bundle extras = getIntent().getExtras();
byte[] b = extras.getByteArray("picture");
`
Bitmap bmp = BitmapFactory.decodeByteArray(b, 0, b.length);
`ImageView image = (ImageView) findViewById(R.id.imageView1);
image.setImageBitmap(bmp);
请张贴完整的堆栈跟踪;i、 例如,
java.lang.NullPointerException
之后的所有红线。您的logcat详细信息在哪里?在您的Logcati上添加所有红线,但logcat较大。在addpage
布局中似乎没有ID为imageButton11
的
。我还要提到,AddPage
目前扩展了MainActivity
。这就是你想做的吗?它没有使用MainActivity
类中的任何内容,因此,您最终会设置内容View
两次,第二次完全取代第一次,因此这是毫无意义的。也许您的意思是扩展普通的活动
。这如何解决空点异常
?他们甚至还没有用通过的额外数据做任何事情。此外,传递R.drawable
比在Intent
上传递一个巨大的byte
数组要好得多。