前提・実現したいこと
現在、android studioでアプリケーションを作成しています。
実装したい機能は、リストビューの中から選択したリストによって表示するダイアログを変える機能です。
例えば、カレー,ハンバーガー,寿司などのリストがあった場合、ハンバーガーを選択すると「title:ハンバーガー,msg:ハンバーガーが選択されました。」というダイアログが。カレーを選択すると「title:カレー,msg:カレーが選択されました。」といった感じの機能です。
現在は、ここにダイアログを表示するコードを記述すれば良いのかな?という部分までは理解しているのですが、どう記述すれば良いのかわからない状態です。
該当のソースコード
Java
1package com.websarva.wings.android.town_infoapp; 2 3 4import android.os.Bundle; 5import android.view.MenuItem; 6import android.view.View; 7import android.widget.AdapterView; 8import android.widget.ArrayAdapter; 9import android.widget.ListView; 10 11import androidx.appcompat.app.ActionBar; 12import androidx.appcompat.app.AppCompatActivity; 13 14import java.util.ArrayList; 15 16public class HelpActivity extends AppCompatActivity { 17 18 @Override 19 protected void onCreate(Bundle savedInstanceState) { 20 super.onCreate(savedInstanceState); 21 setContentView(R.layout.activity_help); 22 23 // ListViewに表示するリスト項目をArrayListで準備する 24 ArrayList data = new ArrayList<>(); 25 data.add("カレー"); 26 data.add("ハンバーガー"); 27 data.add("寿司"); 28 29 ArrayAdapter adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, data); 30 31 // ListViewにArrayAdapterを設定する 32 ListView helplist = (ListView)findViewById(R.id.help_list); 33 helplist.setAdapter(adapter); 34 helplist.setOnItemClickListener(new ListItemClickListener()); 35 } 36 37 private class ListItemClickListener implements AdapterView.OnItemClickListener{ 38 public void onItemClick(AdapterView<?> parent, View view, int position, long id){ 39 //String item = (String)parent.getItemAtPosition(position); 40 41 // ここにダイアログの表示をするコード? 42 OrderConfirmDialogFragment dialogFragment = new OrderConfirmDialogFragment(); 43 dialogFragment.show(getSupportFragmentManager(), "OrderConfirmDialogFragment"); 44 } 45 } 46}
新規に追加したクラス
java
1package com.websarva.wings.android.town_infoapp; 2 3import android.app.AlertDialog; 4import android.app.Dialog; 5import android.content.DialogInterface; 6import android.os.Bundle; 7 8import androidx.fragment.app.DialogFragment; 9import androidx.fragment.app.FragmentManager; 10 11public class OrderConfirmDialogFragment extends DialogFragment { 12 @Override 13 public Dialog onCreateDialog(Bundle savedInstanceState) { 14 AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 15 builder.setTitle(R.string.dialog_title); 16 builder.setMessage(R.string.dialog_msg); 17 builder.setNegativeButton(R.string.dialog_bt_ng, new DialogButtonClickListener()); 18 AlertDialog dialog = builder.create(); 19 return dialog; 20 } 21 22 private class DialogButtonClickListener implements DialogInterface.OnClickListener { 23 @Override 24 public void onClick (DialogInterface dialog , int which){ 25 String msg = ""; 26 switch (which) { 27 case DialogInterface.BUTTON_NEGATIVE: 28 msg = getString(R.string.dialog_bt_ng); 29 break; 30 } 31 } 32 } 33} 34
onClick関数のmsgは使用していませんが、ダイアログの閉じるボタンを実装する際に必要な関数だったので記述しています。
試したこと
別クラス(新規にクラスを作る)を作成したのですが、リストの情報の渡し方が分からなかったので、この「HelpActivity.java」内に一緒に記述してしまいました。
補足情報(FW/ツールのバージョンなど)
足りない情報などがあれば、指摘して頂けると追記します。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー