質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

1170閲覧

ダイアログを表示する

Y.R.T

総合スコア42

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2020/09/28 07:17

編集2020/09/28 08:36

ダイアログを表示するために、「java」フォルダ内の「com.example.listviewsample2」を
右クリックし、「New」→「Java Class」で、Nameを「OrderConfirmDialogFragment」にして、
OrderConfirmDialogFragment.javaファイルを作成しました。

しかし、いろいろな箇所にエラーがでてどこを直せばよいかがわからず、
教えていただけないでしょうか?
作成したファイルは以下に記述しています。

activity_main.xmlファイル****

<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <ListView android:id="@+id/lvMenu" android:layout_width="match_parent" android:layout_height="match_parent" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>

MainActivity.javaファイル**

package com.example.listviewsample2; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ListView lvMenu = findViewById(R.id.lvMenu); List<String> menulist = new ArrayList<>(); menulist.add("唐揚げ定食"); menulist.add("ハンバーグ定食"); menulist.add("生姜焼き定食"); menulist.add("ステーキ定食"); menulist.add("野菜炒め定食"); menulist.add("とんかつ定食"); menulist.add("ミンチカツ定食"); menulist.add("チキンカツ定食"); menulist.add("チキンカツ定食"); menulist.add("コロッケ定食"); menulist.add("焼き魚定食"); menulist.add("焼肉定食"); ArrayAdapter<String> adapter = new ArrayAdapter<>(MainActivity.this, android.R.layout.simple_list_item_1, menulist); lvMenu.setAdapter(adapter); lvMenu.setOnItemLongClickListener(new ListItemClickListener()); } private class ListItemClickListener implements AdapterView.OnItemClickListener{ @Override public void onitemClick(AdapterView<?> parent, View view, int position, long id){ OrderConfirmDialogFragment dialogFragment = new OrderConfirmDialogFragment(); dialogFragment.show(getSupportFragmentManager(), "OrderConfirmDialogFragment"); } } }

OrderConfirmdialogFragment.javaファイル*********

package com.example.listviewsample2; import android.app.Dialog; import android.content.DialogInterface; import android.widget.Toast; import androidx.fragment.app.DialogFragment; public class OrderConfirmDialogFragment extends DialogFragment { @Override public Dialog onCreateDialog(BundlesavedInstanceState){ AlterDialog.Builder builder = new AlterDialog.Builder(getActivity()); builder.setTitle(R.string.dialog_title); builder.setMessage(R.string.dialog_msg); builder.setPositiveButton(R.string.dialog_btn_ok, new DialogButtonClickListener()); builder.setNegativeButton(R.string.dialog_btn_ng, new DialogButtonClickListener()); builder.setNeutralButton(R.string.dialog_btn_nu), new DialogButtonClickListener(); AlterDialog dialog = builder.create(); return dialog; } private class DialogButtonClickListener implements DialogInterface.OnClickListener{ @Override public void onClick(DialogInterfacedialog, int whitch){ String msg=""; swtitch(whitch){ case DialogInterface.BUTTON_POSITIVE: msg=getString(R.string.dialog_ok_toast); break; case DialogInterface.BUTTON_NEGATIVE: msg=getString(R.string.dialog_ng_toast); break; case DialogInterface.BUTTON_NEUTRAL: msg=getString(R.string.dialog_nu_toast); break; } Toast.makeText(getActivity().msg, Toast.LENGTH_LONG).show(); } } }

dialogButtonClickListener.javaファイル**

package com.example.listviewsample2; import android.content.DialogInterface; public interface dialogButtonClickListener extends DialogInterface.OnClickListener { }

*string.xmlファイル

<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">リスト選択サンプル2</string> <string name="dialog_title">注文確認</string> <string name="dialog_msg">選択された定食を注文します。よろしいですか?</string> <string name="dialog_btn_ok">注文</string> <string name="dialog_btn_ng">キャンセル</string> <string name="dialog_btn_nu">問い合わせ</string> <string name="dialog_ok_toast">ご注文ありがとうございます</string> <string name="dialog_ng_toast">ご注文キャンセルしました</string> <string name="dialog_nu_toast">お問い合わせ内容をお知らせください。</string> </resources>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

細かなミスが多いです。

  • MainActivity.java

java

1× lvMenu.setOnItemLongClickListener(new ListItemClickListener()); 2○ lvMenu.setOnItemClickListener(new ListItemClickListener()); // 多分LongClickを意図したものではない? 3 4× public void onitemClick(AdapterView<?> parent, View view, int position, long id){ 5public void onItemClick(AdapterView<?> parent, View view, int position, long id){ // ItemのIは大文字
  • OrderConfirmdialogFragment.java

java

1× public Dialog onCreateDialog(BundlesavedInstanceState){ 2public Dialog onCreateDialog(Bundle savedInstanceState){ 3 4× AlterDialog.Builder builder = new AlterDialog.Builder(getActivity()); // Alertのスペルミス(以下のAlertも全て同じ) 5AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 6 7× builder.setNeutralButton(R.string.dialog_btn_nu), new DialogButtonClickListener(); 8○ builder.setNeutralButton(R.string.dialog_btn_nu, new DialogButtonClickListener()); // 括弧閉じの位置が誤っている 9 10× AlterDialog dialog = builder.create(); 11AlertDialog dialog = builder.create(); 12 13× public void onClick(DialogInterfacedialog, int whitch){ 14public void onClick(DialogInterface dialog, int which){ 15 16× swtitch(whitch){ 17switch (which){ // switchのスペルミス 18 19× Toast.makeText(getActivity().msg, Toast.LENGTH_LONG).show(); 20Toast.makeText(getActivity(), msg, Toast.LENGTH_LONG).show(); // カンマとドットの間違い

これだけ修正すれば一応動作するようです(簡単には確認しました)。

何か書籍を参考にしながら入力されたのでしょうか。Android Studioには強力な補完機能がありますから、補完候補から入力すれば単純な打ち間違いはかなり防げるはずです。

投稿2020/09/28 08:45

編集2020/09/28 14:05
keicha_hrs

総合スコア6768

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問