繁体   English   中英

android.content.Context.getSystemService(java.lang.String)'对空对象的引用

[英]android.content.Context.getSystemService(java.lang.String)' on a null object reference

当单击“列表视图”上的按钮时,我想使用“推送通知”。 但是有错误。

'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)'

请帮助

替换此行代码

LayoutInflater inflater = 
    (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

LayoutInflater inflater = 
    (LayoutInflater) con.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

替换LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

LayoutInflater inflater =(LayoutInflater)con.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM