-5

when i read Settings source code in Android,I found this code

public class Settings extends SettingsActivity {
    /*
    * Settings subclasses for launching independently.
    */
    public static class BluetoothSettingsActivity extends SettingsActivity { /* empty */ }
    public static class WirelessSettingsActivity extends SettingsActivity { /* empty */ }
    public static class SimSettingsActivity extends SettingsActivity { /* empty */ }
    public static class TetherSettingsActivity extends SettingsActivity { /* empty */ }
    ...
}

could any one tell me What are the benefits of doing so? could we use SettingsActivity directly?

4castle
  • 32,613
  • 11
  • 69
  • 106

1 Answers1

0

For the most part it's just a namespacing technique. These examples are identical in functionality, they just have different usages for B.

public class A { // class A
    public static class B { // class A.B

    }
}

public class A { // class A

}

public class B { // class B

}

A public static inner class acts exactly the same as a class that isn't nested. You just have to give the outer class first to access the inner class, such as doing:

new Settings.BluetoothSettingsActivity()

If static wasn't specified though, there would be a big difference. See this question.

Community
  • 1
  • 1
4castle
  • 32,613
  • 11
  • 69
  • 106