簡體   English   中英

ArrayList如果列表為null時if語句不起作用

[英]ArrayList if statement does not work when the list is null

我有一個微調器和一個將ArrayList與Parse.com進行比較的onItemSelected,然后運行一個Scan方法,該方法運行一個藍牙掃描,如果它找到了一個針對解析的mac地址,它將進行烘烤。

我想使該吐司自定義,但是當自定義arraylist == null時,它應該吐出標准吐司。 當我不檢查列表== null時,這可以正常工作。 如果我為烤面包輸入內容,它將運行良好並顯示自定義烤面包。 因此,敬酒決不能為空,否則什么也沒有定義。 我嘗試過customnotifications.clear,然后再添加一些內容,但在代碼中清除了幾個地方,但這是行不通的。

這是我的支票對帳單;

 public void ScanBL() {
    final ParseQuery<ParseUser> queryParseUser = ParseUser.getQuery();
    queryParseUser.findInBackground(new FindCallback<ParseUser>() {
        @Override
        public void done(List<ParseUser> BTList, ParseException arg1) {
            // TODO Auto-generated method stub
            //Log.d("Parse", "we made it this far");
            btadapter.cancelDiscovery();
            btadapter.startDiscovery();
            if (BTList != null && arg1 == null && list != null) {
                for (ParseUser parseObject : BTList) {
                    if (parseObject.getString("BT_ID") != null) {
                        for (String string : list) {
                            for(String s : customnotification) {
                                Log.d("Custom", s);
                            }
                            if (string.equals(parseObject.getString("BT_ID")) && excluded.contains(parseObject.getString("BT_ID")) && customnotification == null) {
                                String user = parseObject.getString("username");
                                Log.d("For each", user);
                                Toast toast2 = Toast.makeText(context, "Wow, " + user + " is nearby! Test", Toast.LENGTH_SHORT);
                                toast2.show();

                                }
                            else if (string.equals(parseObject.getString("BT_ID")) && excluded.contains(parseObject.getString("BT_ID"))){
                                String user = parseObject.getString("username");
                                for (String string2 : customnotification) {
                                    Toast toast = Toast.makeText(context, user + string2, Toast.LENGTH_SHORT);
                                    toast.show();
                                }
                                //out.append("\nFound nearby device: " + user);
                                //Log.d("Bluetooth", "burde parse?");
                            }
                        }
                    }
                }
            }

            else {
                Log.d("Bluetooth", "Fejl i returnering af data: ");
            }
        }
    });
}

在這里,我添加了customnotifications arraylist;

protected void changeNotifications() {
    customnotification.clear();

    String changemessage = changeMessage.getText().toString();
    Toast.makeText(getApplicationContext(), "Notifikation changed to " + changemessage, Toast.LENGTH_LONG).show();
    customnotification.add(changemessage);
    for (String string : customnotification){
        System.out.println(string);
    }

}

我到底該如何正確檢查? 在這里住了一天:(

一位朋友向我指出ArrayLists不能為null,因此顯而易見的微小變化很簡單

if (string.equals(parseObject.getString("BT_ID")) && excluded.contains(parseObject.getString("BT_ID")) && customnotification == null)

變成

if (string.equals(parseObject.getString("BT_ID")) && excluded.contains(parseObject.getString("BT_ID")) && customnotification.isEmpty())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM