1. ホーム
  2. android

フラグメントの中でトーストを使用

2023-11-03 13:26:40

質問

フラグメント内のボタンをクリックしたときに、トーストメッセージを表示させようとしています。問題は、Toastを表示するためのアクティビティにアクセスできないことです。

以下は Fragment :

    public class FrgTimes extends Fragment
    {
        ScrollView sv;
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) 
        {
            if (container == null) { return null; }

            sv = (ScrollView)inflater.inflate(R.layout.frg_times, container, false);

            btnTime1.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {

            //******  HERE's the PROBLEM  ********
            Toast.makeText(<The Activity>, "Please long press the key", Toast.LENGTH_LONG );

            }});

            return sv;
        }

と、こんな感じで試されています。

Toast.makeText( getActivity()  , ...
Toast.makeText( getView().getContext()  , ...
Toast.makeText( getActivity().getApplicationContext()  , ...
Toast.makeText( sv.getContext()  , ...
Toast.makeText( sv.getRootView().getContext()  , ...

デバッグでは、これらのコードはすべて例外なく実行されていることがわかります。 TOAST は表示されていません。

どのように解決するのですか?

あなたは show() の上で Toast で作成している makeText() .