空对象引用上的android.content.Context.getSystemService(java.lang.String)' [英] android.content.Context.getSystemService(java.lang.String)' on a null object reference
本文介绍了空对象引用上的android.content.Context.getSystemService(java.lang.String)'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当单击列表视图"上的按钮时,我要使用推送通知".但是有错误.
when click button on 'listview', I want to use Push Notification. But there is Error..
'ListViewAdapter'
'ListViewAdapter'
public class ListViewAdapter extends BaseAdapter{
private Context con;
public ListViewAdapter(Context con) {
this.con = con;
getData("http://117.17.158.240/test/GpsSender.php");
}
....
...
@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
final int pos = position;
final Context context = parent.getContext();
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(com.satt.mjbus.R.layout.listview_item, parent, false);
}
final ImageButton btn = (ImageButton)convertView.findViewById(com.satt.mjbus.R.id.button);
btn.setTag(position);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int poss = (Integer) v.getTag();
int check_num = 0;
btn.setSelected(true);
if (check_num == 0) {
btn.setSelected(true);
check_num = 1;
} else if (check_num == 1) {
btn.setSelected(false);
check_num = 0;
}
NotificationManager notificationManager = (NotificationManager) con.getSystemService(con.NOTIFICATION_SERVICE);
Intent intent1 = new Intent(con.getApplicationContext(), ListViewAdapter.class);
Notification.Builder builder = new Notification.Builder(con.getApplicationContext());
intent1.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingNotificationIntent = PendingIntent.getActivity(con, 0, intent1, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setSmallIcon(R.drawable.bus)
.setTicker("HETT")
.setWhen(System.currentTimeMillis())
.setNumber(1)
.setContentTitle("푸쉬 제목")
.setContentText("푸쉬내용")
.setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE)
.setContentIntent(pendingNotificationIntent)
.setAutoCancel(true)
.setOngoing(true);
notificationManager.notify(1, builder.build());
}
});
btn.setFocusable(false);
....
}
我得到的错误是java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'java.lang.Object android.content.Context.getSystemService(java.lang.String)'
And I got error is java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Object android.content.Context.getSystemService(java.lang.String)' on a null object reference
plz帮助.
推荐答案
替换此行代码
LayoutInflater inflater =
(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
与
LayoutInflater inflater =
(LayoutInflater) con.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
这篇关于空对象引用上的android.content.Context.getSystemService(java.lang.String)'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文