1. Возможно, для этого нужно создать свой класс кнопки, спинера, EditText, чего угодно
public class CustomEditText extends EditText {
// Твоя логика, можно написать тут свои листенеры а в Activity передавать Spinner чтобы подписываться на его изменение
}
И далее в layout'e
<your.package.CustomEditText
...
/>
Если нужно полностью повторить всю структуру то возможно стоит использовать Fragment'ы
2. Не совсем понимаю что такое SystemPreference, возможно имелось ввиду SharedPreference.
Можно, для этого, например, можно создать класс SharedPreferenceUtil в котором объявить
class SharedPreferenceUtil {
private final SharedPreferences preferences;
private SharedPreferenceUtil (Context context) {
preferences = context.getSharedPreferences(PREFERENCES, Context.MODE_PRIVATE);
}
public int getValue() {
return preferences.getInt(PREFERENCE_VALUE, 0);
}
Как то так.