Android 适配器的类型getIntent()未定义
我通过以下意图从另一项活动中获得了一个byteArray:Android 适配器的类型getIntent()未定义,android,android-intent,Android,Android Intent,我通过以下意图从另一项活动中获得了一个byteArray: if (view == null) { view = new ImageView(mContext); } Bundle extras = getIntent().getExtras(); byte[] byteArray = extras.getByteArray("picture"); Bitmap default_b = BitmapFactory.decod
if (view == null) {
view = new ImageView(mContext);
}
Bundle extras = getIntent().getExtras();
byte[] byteArray = extras.getByteArray("picture");
Bitmap default_b = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
view.setImageBitmap(default_b);
view.setImageResource(drawables.get(position));
view.setScaleType(ImageView.ScaleType.CENTER_CROP);
view.setLayoutParams(new android.widget.GridView.LayoutParams(70, 70));
view.setTag(String.valueOf(position));
return view;
但是我得到一个错误,即对于GridViewAdapter类型,getIntent是未定义的,这是在我的gridView的基本适配器类中 我在这里创建了一个意图:
Intent intent = new Intent(v.getContext(), GridViewAdapter.class);
intent.putExtra("picture", byteArray);
v.getContext().startActivity(intent);
如何修复此错误
增加:
以下是我创建意图的完整部分:
Log.d("AppInfoAdapter", "Data Set To Display");
addCheckbox
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (addCheckbox.isChecked()) {
System.out.println("Checked");
PackageManager pm = mContext.getPackageManager();
Drawable icon = null;
try {
icon = pm
.getApplicationIcon(entry.activityInfo.packageName);
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Drawable default_icon = pm.getDefaultActivityIcon();
if (icon instanceof BitmapDrawable
&& default_icon instanceof BitmapDrawable) {
BitmapDrawable icon_bd = (BitmapDrawable) icon;
Bitmap icon_b = icon_bd.getBitmap();
BitmapDrawable default_bd = (BitmapDrawable) pm
.getDefaultActivityIcon();
Bitmap default_b = default_bd.getBitmap();
if (icon_b == default_b) {
// It's the default icon
scaleDownBitmap(default_b, 100, v.getContext());
Log.d("AppInfoAdapter", "Scale Bitmap Chosen");
ByteArrayOutputStream stream = new ByteArrayOutputStream();
default_b.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
Log.d("AppInfoAdapter", "Scale Bitmap to Array");
Intent intent = new Intent(v.getContext(), GridViewAdapter.class);
intent.putExtra("picture", byteArray);
v.getContext().startActivity(intent);
Log.d("AppInfoAdapter", "Intent started to send Bitmap");
}
}
} else {
System.out.println("Un-Checked");
}
}
});
getIntent用于获取用于启动活动的意图。因为您不在活动中,所以没有获取的意图,正如它所说的,getIntent不是适配器类的函数
在调用适配器类的活动中使用该代码,并将所需的数据传递给该类getIntent用于获取用于启动活动的意图。因为您不在活动中,所以没有获取的意图,正如它所说的,getIntent不是适配器类的函数
在调用适配器类的活动中使用该代码,并将所需的数据传递给该类将活动上下文传递给适配器构造函数 在那里,你可以像这样访问你的意图
((Activity)mContext).getIntent()
将活动上下文传递给适配器构造函数 在那里,你可以像这样访问你的意图
((Activity)mContext).getIntent()
我们开始:
Intent intent = ((Activity) context).getIntent();
int value = intent.getIntExtra("myvalue", 0);
我们开始:
Intent intent = ((Activity) context).getIntent();
int value = intent.getIntExtra("myvalue", 0);
我得到的错误是getIntent对于类型ContextYeah是未定义的,请看我更新的答案,我对您所拥有的有点困惑我得到的错误是getIntent对于类型ContextYeah是未定义的,请看我更新的答案,我对您所拥有的有点困惑