2012-06-22 3 views
6

Ich benutze Eclipse für Android-Entwicklung und ich habe bereits meinen Code Formatierungsstil eingerichtet, aber immer noch die anonymen Methoden, die ich nicht herausfinden konnte, wie in Eclipse zu formatieren . So formatiert Eclipse jetzt anonyme Methoden:Wie setze ich Code Formatter für Java anonyme Methoden in Eclipse

// The BroadcastReceiver that listens for discovered devices and 
    // changes the title when discovery is finished 
    private final BroadcastReceiver mReceiver = new BroadcastReceiver() { 
                @Override 
                public void onReceive(Context context, Intent intent) { 
                 String action = intent.getAction(); 
                 Utils.Log.i("BLUETOOTH: " + action); 
                 if (BluetoothDevice.ACTION_FOUND.equals(action)) { 
                  // Get the 
                  // BluetoothDevice 
                  // object from the 
                  // Intent 
                  BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); 
                  // If it's already 
                  // paired, skip it, 
                  // because it's been 
                  // listed already 
                  if (device.getBondState() != BluetoothDevice.BOND_BONDED) { 
                   if (mNewDevicesArrayAdapter.getCount() == 0) { 
                    mNewDevicesArrayAdapter.add(device); 
                   } 
                   btDevicesUpdateList.add(device); 
                  } 
                 } 
                 else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED.equals(action)) { 
                  mNewDevicesArrayAdapter.setItems(btDevicesUpdateList); 
                  mNewDevicesArrayAdapter.notifyDataSetChanged(); 
                  btDevicesUpdateList.clear(); 
                  mBtAdapter.startDiscovery(); 
                 } 
                 else if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(action)) { 
                  if (mBtAdapter.getState() == BluetoothAdapter.STATE_ON) { 
                   switchToView(viewBluetoothOn); 
                   firstTimeDiscover(); 
                  } 
                  else if (mBtAdapter.getState() == BluetoothAdapter.STATE_OFF) { 
                   switchToView(viewBluetoothOff); 
                  } 
                 } 
                } 
               }; 

Sehen Sie? Es ist sehr beschissen. Was ist die richtige Einstellung, um die anonyme Methodendeklaration so zu formatieren, dass sie auf der linken Seite bleibt und nicht unter das = Gleichheitszeichen fällt?

+0

Bitte schreiben Inhalt Ihrer .settings/org.eclipse.jdt.core.prefs –

+3

verbrachte ich gute fünf Minuten, die schrecklichen Formatierung Aufräumen, nur die Frage zu erkennen ist, * über * die schreckliche Formatierung. **** headdesk **** –

+0

@EugeneKuleshov das ist projektspezifische Einstellung. – papaiatis

Antwort

0

Es sieht so aus, als ob Sie eine benutzerdefinierte Formatierung haben. Gehen Sie zu Projekteigenschaften/Java-Code-Stil/Formatierer/Projektspezifische Einstellungen aktivieren und wählen Sie dann das integrierte Formatierungsprofil "Java Conventions".

+0

Ja, habe ich. Wie ich bereits in meiner Frage erwähnt habe, habe ich bereits einige benutzerdefinierte Formatierungseinstellungen eingerichtet, aber ich weiß nicht, was ich mit der Formatierung von Anonymus Methoden anfangen soll ... – papaiatis

3

Ich glaube, die Einstellung, die diese schlechte Formatierung verursacht, ist "Felder in Spalten ausrichten", wenn Sie dies deaktivieren, sollte die Klassen-/Schnittstellenimplementierung vom Anfang der Zeile statt vom Gleichen eingerückt werden.

Ich habe einen Fehler bei Eclipse geöffnet, um entweder das Standardverhalten zu korrigieren oder eine weitere Einstellung für Klassen-/Schnittstellenimplementierungen hinzuzufügen.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=385901

2

Der Arbeit-a-round für dieses Problem ist leicht Ihre Codierung Stil zu ändern. Ausschneiden und Einfügen der folgenden und führen Sie Ihren Formatierer. Stil # 2 wird weniger beschissen aussehen.

// **Style #1** - Formatter handles poorly 
JDialog jDialog1 = new JDialog(new JFrame()) { 
    public void setBackground(final Color c) { 
     super.setBackground(c); 
    } 
}; 

// **Style #2** - Formatter handles well. 
JDialog jDialog2; 
{ 
    jDialog2 = new JDialog(new JFrame()) { 
     public void setBackground(final Color c) { 
      super.setBackground(c); 
     } 
    }; 
} 
+1

Funktioniert! Eclipse sollte den Formatierer als @RedLenses vorgeschlagen, aber das ist eine gute Lösung für den Moment. –