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

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

新規登録して質問してみよう
ただいま回答率
85.47%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

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

Q&A

2回答

2344閲覧

Android Studio : Fragmentでエラーが発生する

linkin109

総合スコア4

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

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

0グッド

0クリップ

投稿2019/11/28 05:55

編集2019/11/29 02:21

現在Androidアプリ開発を行っており、ToDoリストをユーザが追加、削除できる機能を持ったシステムを作成しています。
ToDoリスト追加画面にて、日付を設定するボタンを押下するとダイアログでカレンダーが現れ、選択した日付が
表示される機能を作りたいと思っているのですが、MainActivityのgetFragmentManagerにてエラーが発生しています。コードは以下の通りです。

実行した際、「メソッド'show(android.app.FragmentManager,java.lang.String)'を解決できません」とエラー文が表示されます。
助言いただけましたら幸いです。

MainActivity

1 2package jousen.abcc.aso.calender; 3 4import androidx.appcompat.app.AppCompatActivity; 5 6import android.os.Bundle; 7import android.view.View; 8import android.widget.Button; 9import android.widget.TextView; 10public class MainActivity extends AppCompatActivity { 11 12 @Override 13 protected void onCreate(Bundle savedInstanceState) { 14 super.onCreate(savedInstanceState); 15 setContentView(R.layout.activity_main); 16 17 // idがdialogButtonのButtonを取得 18 Button dialogBtn = (Button) findViewById(R.id.dialogButton); 19 // clickイベント追加 20 dialogBtn.setOnClickListener(new View.OnClickListener() { 21 @Override 22 // クリックしたらダイアログを表示する処理 23 public void onClick(View v) { 24 // ダイアログクラスをインスタンス化 25 CustomDialogFragment dialog = new CustomDialogFragment(); 26 // 表示 getFagmentManager()は固定、sampleは識別タグ 27 dialog.show(getFragmentManager(), "sample"); 28 } 29 }); 30 } 31 32 // ダイアログで入力した値をtextViewに入れる - ダイアログから呼び出される 33 public void setTextView(String value){ 34 TextView textView = (TextView) findViewById(R.id.text); 35 textView.setText(value); 36

CustomDialogFragment

1 2package jousen.abcc.aso.calender; 3 4import android.app.DatePickerDialog; 5import android.app.Dialog; 6import android.os.Bundle; 7import android.widget.DatePicker; 8import androidx.fragment.app.DialogFragment; 9 10import java.util.Calendar; 11 12public class CustomDialogFragment extends DialogFragment { 13 14 // ダイアログが生成された時に呼ばれるメソッド ※必須 15 public Dialog onCreateDialog(Bundle savedInstanceState){ 16 // 今日の日付のカレンダーインスタンスを取得 17 final Calendar calendar = Calendar.getInstance(); 18 19 // ダイアログ生成 DatePickerDialogのBuilderクラスを指定してインスタンス化します 20 DatePickerDialog dateBuilder = new DatePickerDialog( 21 getActivity(), 22 new DatePickerDialog.OnDateSetListener(){ 23 @Override 24 public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) { 25 // 選択された年・月・日を整形 ※月は0-11なので+1している 26 String dateStr = year + "年" + (month + 1) + "月" + dayOfMonth + "日"; 27 28 // MainActivityのインスタンスを取得 29 MainActivity mainActivity = (MainActivity) getActivity(); 30 mainActivity.setTextView(dateStr); 31 } 32 }, 33 calendar.get(Calendar.YEAR), // 初期選択年 34 calendar.get(Calendar.MONTH), // 初期選択月 35 calendar.get(Calendar.DAY_OF_MONTH) // 初期選択日 36 ); 37 38 // dateBulderを返す 39 return dateBuilder; 40 } 41} 42

activitymain

1<?xml version="1.0" encoding="utf-8"?> 2<LinearLayout 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 xmlns:app="http://schemas.android.com/apk/res-auto" 5 xmlns:tools="http://schemas.android.com/tools" 6 android:layout_width="match_parent" 7 android:layout_height="match_parent" 8 android:orientation="vertical" 9 tools:context="jousen.abcc.aso.calender.MainActivity"> 10 11 <TextView 12 android:id="@+id/text" 13 android:layout_width="match_parent" 14 android:layout_height="wrap_content" 15 android:hint="ここにダイアログから値が返ります" 16 android:textSize="20sp"/> 17 <Button 18 android:id="@+id/dialogButton" 19 android:layout_width="match_parent" 20 android:layout_height="wrap_content" 21 android:text="ダイアログを表示する"/> 22 23</LinearLayout>

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/11/29 03:23

回答もらってるのに、それに返答しないで 本文にしれっと「助言ください」って追加してますけど、 結局何が聞きたいんでしょうか?
guest

回答2

0

投稿2019/11/29 06:21

AnonymouZ

総合スコア64

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

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

0

androidx.fragment.app.DialogFragment の show メソッド第一引数は androidx.fragment.app.FragmentManager です.

投稿2019/11/28 06:56

jimbe

総合スコア12696

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問