2017-03-02 2 views
0

Mein Code liest eine TXT-Datei und überprüft, ob es nicht "yoloswag" drin hat. Und zeigt die Zeichenfolge in einem Dialogfeld an, wenn dies nicht der Fall ist.wenn! Nicht funktioniert für StringBuilder android

private void display() { 
    File sdcard = Environment.getExternalStorageDirectory(); 
    File file = new File(sdcard, "broadcast.txt"); 
    StringBuilder text = new StringBuilder(); 
    try { 
     BufferedReader br = new BufferedReader(new FileReader(file)); 
     String line; 
     while ((line = br.readLine()) != null) { 
      text.append(line); 
      text.append('\n'); 
     } 
     br.close(); 
    } catch (IOException e) { 
    } 
    if (!text.equals("yoloswag")) { 
     AlertDialog alertDialog = new AlertDialog.Builder(this) 
       .setTitle("BROADCAST").setMessage(text).create(); 
     alertDialog.getWindow().setType(
       WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); 
     alertDialog.show(); 
    } else { 
     // don't show 
    } 
} 

aber das Problem ist, es zeigt immer den Dialog unabhängig davon, ob die TXT-Datei hat „yoloswag“ drin ist oder nicht. Wo liege ich falsch ??

Antwort

0

Es wird immer falsch sein, weil Sie toString() -Methode auf dem String

if (!text.toString().equals("yoloswag")) 

auch anrufen müssen, für jede Zeile, die Sie lesen, Sie ein „\ n“ am Ende hinzufügen, so Selbst wenn die Datei "yoloswag" enthält, ist der von Ihnen erzeugte StringBuilder "yoloswag \ n", der Grund, warum sie niemals gleich sind.

+0

ich Ihren Code versucht, es zeigt immer noch den Dialog :( – joey

+0

es funktionierte. Sie sind das Beste! – joey

+0

Glad es war hilfreich. Übernehmen Sie die Antwort, wenn es Ihr Problem gelöst – Ricardo

0

Dort gehen Sie

String result = text.toString(); 
    if (!result.contains("yoloswag")) { 
     AlertDialog alertDialog = new AlertDialog.Builder(this) 
     .setTitle("BROADCAST") 
     .setMessage(text).create();alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); 
     alertDialog.show(); 
    } else { 
     // don't show 
    } 
Verwandte Themen