Использовать аннотации Android в пользовательском диалоговом классе

Я использую андроиды андроида, я пытаюсь аннотировать этот класс, чтобы сохранить значение в классе общих предпочтений (аннотированный), используя @pref. Мне удалось найти работу с намерением и широковещательным приемником, однако это не идеально, и теперь, когда я хочу получить значение из общих настроек в этом классе, чтобы показать как элемент по умолчанию, выбранный в spinner, он начинает Оставьте запах на моем коде.

Есть ли способ аннотировать этот класс?

public class SelectNewsFeedDialog extends Dialog { private Context context; private Button confirmButton; private Spinner spinnerTeams; public SelectNewsFeedDialog(final Context context, ArrayList<Team> listTeams) { super(context,R.style.cust_dialog); this.context = context; setContentView(R.layout.dialog_choose_news_feed); spinnerTeams = (Spinner) findViewById(R.id.dialog_news_feed_spinner_teams); confirmButton = (Button) findViewById(R.id.dialog_news_feed_button_confirm); confirmButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Team team = (Team)spinnerTeams.getSelectedItem(); Intent intent = new Intent(context, IntentCenter_.class); intent.putExtra(context.getString(R.string.extra_update_team_news_feed), team.url.toString()); intent.setAction(context.getString(R.string.action_update_team_news_feed)); context.sendBroadcast(intent); dismiss(); } }); SpinnerTeamsAdapter adapter = new SpinnerTeamsAdapter(context, listTeams); spinnerTeams.setAdapter(adapter); } } 

Solutions Collecting From Web of "Использовать аннотации Android в пользовательском диалоговом классе"

В настоящее время у нас нет комментариев для классов Dialog . Вы можете использовать @EBean для этого, но компилятор кричит о недостающих конструкторах.

Решение заключается в использовании DialogFragment вместо Dialog и аннотации этого класса с помощью @EFragment . Следующий код должен работать:

 @EFragment(R.layout.dialog_choose_news_feed) public class SelectNewsFeedDialog extends DialogFragment { @ViewById Button confirmButton; @ViewById Spinner spinnerTeams; @Extra List<Team> listTeams; @Click public void confirmButtonClicked() { Team team = (Team) spinnerTeams.getSelectedItem(); Intent intent = new Intent(context, IntentCenter_.class); intent.putExtra(context.getString(R.string.extra_update_team_news_feed), team.url.toString()); intent.setAction(context.getString(R.string.action_update_team_news_feed)); context.sendBroadcast(intent); dismiss(); } @AfterViews public void init() { SpinnerTeamsAdapter adapter = new SpinnerTeamsAdapter(getActivity(), listTeams); spinnerTeams.setAdapter(adapter); } } 

Однако использование @Extra в списке – не очень хорошая идея. Вы должны: * использовать список идентификаторов, аннотированных с помощью @Extra *, или использовать сеттер и @Extra этот список вашему адаптеру после того, как диалог был инициализирован.

Надеюсь это поможет