我正试图让地图在我的Json适配器中工作。但不知何故,我总是收到错误信息:
JAVAlang.NullPointerException:尝试调用虚拟方法“void”。所容纳之物上下文空对象引用上的startActivity(android.content.Intent)
这是我的第二个Android项目,我找不到我的错误。我希望你们中的一些人能帮助我。
class JSONAdapter extends BaseAdapter implements ListAdapter{
private final Activity activity;
private Context context;
private final JSONArray jsonArray;
JSONAdapter(Activity activity, JSONArray jsonArray) {
assert activity != null;
assert jsonArray != null;
this.jsonArray = jsonArray;
this.activity = activity;
}
@Override public int getCount() {
if(null==jsonArray)
return 0;
else
return jsonArray.length();
}
@Override public JSONObject getItem(int position) {
if(null==jsonArray) return null;
else
return jsonArray.optJSONObject(position);
}
@Override public long getItemId(int position) {
JSONObject jsonObject = getItem(position);
return jsonObject.optLong("id");
}
@Override public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null)
convertView = activity.getLayoutInflater().inflate(R.layout.row, null);
TextView tBrand =(TextView)convertView.findViewById(R.id.tvbrand);
TextView tStreet =(TextView)convertView.findViewById(R.id.tvstreet);
final TextView tPrice = (TextView)convertView.findViewById(R.id.tvprice);
final TextView tPlace = (TextView)convertView.findViewById(R.id.tvplace);
TextView tOpen = (TextView)convertView.findViewById(R.id.tvopen);
JSONObject json_data = getItem(position);
if(null!=json_data ) {
String brand = null;
String street = null;
String price = null;
String houseNumber = null;
String place = null;
String postCode = null;
boolean open = false;
Double statLng = null;
Double statLat = null;
try {
brand = json_data.getString("brand");
street = json_data.getString("street");
price = Double.toString(json_data.getDouble("price"));
houseNumber = json_data.getString("houseNumber");
place = json_data.getString("place");
postCode = json_data.getString("postCode");
open = json_data.getBoolean("isOpen");
statLng = json_data.getDouble("lng");
statLat = json_data.getDouble("lat");
} catch (JSONException e) {
e.printStackTrace();
}
if (houseNumber.equals("null")) {
houseNumber = "";
}
tBrand.setText(brand);
tPrice.setText(price + "€");
tStreet.setText(street + " " + houseNumber);
tPlace.setText(postCode + " " + place);
if (open == true) {
tOpen.setText("geöffnet");
tOpen.setTextColor(Color.GREEN);
} else {
tOpen.setText("geschlossen");
tOpen.setTextColor(Color.RED);
}
final Double finalStatLng = statLng;
final Double finalStatLat = statLat;
tPrice.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri gmmIntentUri = Uri.parse("google.navigation:q=" + finalStatLat + "," + finalStatLng);
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
context.startActivity(mapIntent);
}
});
}
return convertView;
}
您没有给上下文赋值
上下文=活动;
或使用activity.start活动(mapIntent);
变量'viewholder'、'position'&model'是从内部类访问的,它需要声明为final,但当我将其声明为final时,在适配器中显示错误。我正在使用Firebase 11.2.0请帮助我
我正在尝试用spring显示一个报告PDF,我终于得到了它,但是问题出现在我的代码中有一个异常或错误的时候。在这种情况下,我想在我的应用程序中显示特殊的消息。sping控制器返回一个带有文件pdf的ResponseEntity和一个http状态代码。
我已经使用fresco库加载适配器中的图像。但是图像并没有像我预期的那样设置正确。这是我的代码。请帮帮我.提前道谢。
我为android编写应用程序,它将与GCM通信。我可以得到消息,但我想在屏幕上显示它,并得到错误。 有我的代码,我在行Activity act=(Activity)上下文中有问题; 我得到错误“这个类文件的JAR属于容器'Android dependencies',它不允许修改其条目上的源附件”
当我将“CompilesDKVersion”Google Inc.:Google API:23“设置为SDK版本时,模块名称在android图标上有一个十字(x)符号。在运行配置对话框中,它显示错误,如“错误,请选择Android SDK”。由于该错误,应用程序没有启动。 但当我把“CompilesDKVersion23”设置为SDK版本时,一切都很好,而且应用程序也上线了。