我正在使用android注释,我正在尝试注释这个类,以便我可以使用@pref将值保存到我的共享首选项(带注释)类中。我已经设法找到了一个有意图和广播接收器的工作但是这不是理想的,现在我想从这个类中的共享首选项中获取一个值,以显示在微调器中选择的默认项目它开始给我的代码留下气味。
有没有办法注释这个课程?
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);
}
}
答案 0 :(得分:10)
目前,我们没有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
注释的ID列表
*或者,使用setter并在初始化对话框后将此列表传递给适配器。
希望这有帮助