初めまして、Androidでアプリの開発をしています。
スケジュールを記録するアプリを、Realmというデータベースを利用して開発しています。
アプリでは日付や予定などを入力して保存した後、保存した記録を閲覧する際に、入力した内容を表示させたいと考えています。
getter,setterを用いてスピナーの選択項目を取得し、記録を閲覧する際に、取得していた選択項目をスピナーに表示させたいのですが、どうもやり方がわかりません。
例えば、日付を選択するスピナーで"17時"という項目を選択し、保存したとします。保存した記録を再度開いた時、そのスピナーに"17時"の選択項目が選択されているようにしたいという感じです。
###試したこと
Scheduleというクラスにてid,plan,timeのゲッターとセッターを設定しました。
public class Schedule extends RealmObject{ @PrimaryKey private long id; private String plan; private Spinner time; public long getId(){ return id; } public void setId(long id){ this.id; } public String getPlan(){ return plan; } public void setPlan(String plan){ this.plan = plan; } public Spinner getTime(){ return time; } public void setTime(Spinner time){ this.time = time; } }
次に、ScheduleEditActivityというクラスに以下のように記述しました。
public class ScheduleEditActivity extends AppCompatActivity { EditText mPlanEdit; Spinner mTimeEdit; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_schedule_edit); mPlanEdit = (EditText) findViewById(R.id.planEdit); mTimeEdit = (Spinner) findViewById(R.id.spinnerTime); long scheduleId = getIntent().getLongExtra("schedule_id", -1); if(scheduleId != -1) { Realm realm = Realm.getInstance(this); RealmResults<Schedule> results = realm.where(Schedule.class).equalTo("id", scheduleId).findAll(); Schedule schedule = results.first(); mPlanEdit.setText(schedule.getPlan()); } } //記録を追加する処理// public void onSaveTapped(View view) { long scheduleId = getIntent().getLongExtra("schedule_id", -1); if (scheduleId != -1) { Realm realm = Realm.getInstance(this); RealmResults<Schedule> results = realm.where(Schedule.class).equalTo("id", scheduleId).findAll(); realm.beginTransaction(); Schedule schedule = results.first(); schedule.setPlan(mPlanEdit.getText().toString()); realm.commitTransaction(); Snackbar.make(findViewById(android.R.id.content), "更新しました", Snackbar.LENGTH_SHORT).setAction("戻る", new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }) }else{ Realm realm = Realm.getInstance(this); realm.beginTransaction(); Number maxId = realm.where(Schedule.class).max("id"); long nextId = 1; if (maxId != null) nextId = maxId.longValue() + 1; Schedule schedule = realm.createObject(Schedule.class); schedule.setId(nextId); schedule.setPlan(mPlanEdit.getText().toString()); realm.commitTransaction(); Toast.makeText(this, "追加しました", Toast.LENGTH_SHORT).show(); finish(); } }
EditTextの入力を表示させることはできましたが、スピナーの項目を表示させる方法が分かりません。
アドバイスのほど、よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/05 07:14