アンドロイドアノテーションを使用しています。このクラスに注釈を付けると、@prefを使用して共有プリファレンス(注釈付き)クラスに値を保存できます。私はインテントとブロードキャストレシーバを使って回避策を見つけることができましたが、これは理想的ではなく、このクラスの共有プリファレンスから値を取り出して、スピナーに選択されている既定のアイテムとして表示したい私のコードに匂いを残す。カスタムダイアログクラスでAndroidアノテーションを使用する
このクラスに注釈を付ける方法はありますか?
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);
}
}
ありがとう、私は今夜これを実装しようとします。 余分なものはリストの単なる項目であり、注釈付きのsharedPreferencesを使用する必要があったために必要でした。だから私は意図を送って、それをアノテートされたクラスで拾い上げました。どんな手段でもそれを実行する素晴らしい方法ではありませんでした。 –
サポートライブラリのバージョンが22.2.1より前であればDialogFragmentに問題があります。問題は消えるはずです。 DialogFragmentを使用するときは、ダイアログが閉じられたときにアクティビティ/フラグメントライフサイクルが影響を受けることはありません。これは実際にフラグメントがフォアグラウンドにあるため、onResumeは呼び出されないため、ダイアログのonDismissメソッドでイベントをトリガするインターフェイスを作成する必要があります。助けてくれてありがとう! – j1c1m1b1