Вы можете использовать RoboGuice . Он не использует циклы, но помогает вам внедрить ваш вид, ресурс, системную службу или любой другой объект в ваш код.
RoboGuice
- это структура, которая обеспечивает простоту и удобство внедрения зависимостей в Android с помощью собственной библиотеки Google Guice.
Чтобы дать вам представление, взгляните на этот простой примерТипичная активность Android:
class AndroidWay extends Activity {
TextView name;
ImageView thumbnail;
LocationManager loc;
Drawable icon;
String myName;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
name = (TextView) findViewById(R.id.name);
thumbnail = (ImageView) findViewById(R.id.thumbnail);
loc = (LocationManager) getSystemService(Activity.LOCATION_SERVICE);
icon = getResources().getDrawable(R.drawable.icon);
myName = getString(R.string.app_name);
name.setText( "Hello, " + myName );
}
}
Этот пример состоит из 19 строк кода.Если вы пытаетесь прочитать onCreate (), вам нужно пропустить 5 строк начальной инициализации, чтобы найти единственную, которая действительно имеет значение: name.setText ().И сложные действия могут закончиться намного большим количеством кода инициализации такого рода.
Сравните это с тем же приложением, написанным с использованием RoboGuice:
class RoboWay extends RoboActivity {
@InjectView(R.id.name) TextView name;
@InjectView(R.id.thumbnail) ImageView thumbnail;
@InjectResource(R.drawable.icon) Drawable icon;
@InjectResource(R.string.app_name) String myName;
@Inject LocationManager loc;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
name.setText( "Hello, " + myName );
}
}
В этом примере onCreate ()гораздо проще воспринимать с первого взгляда.Все шаблоны платформы убраны, и у вас остается только бизнес-логика вашего собственного приложения.Вам нужен SystemService?Введите один.Вам нужен вид или ресурс?Добавьте их тоже, и RoboGuice позаботится о деталях.
Цель RoboGuice - сделать так, чтобы ваш код соответствовал вашему приложению, а не содержал весь код инициализации и жизненного цикла, который вы обычно должны поддерживать в Android.
Этот текст здесь