2017-02-22 1 views
0

私はAndroidでダイアログに手を入れようとしています。私は最近、Builderクラスを使用するこの例を見てきました。ビルダーでsetViewを使用していますか?

コードは、それが今、私はこの行を入力と同じように

builder.setView(dialogView).setMessage("Add a new note"); 

は、ポップアップ表示のエラーメッセージが「setviewコマンドを解決できません」でのコード行に示して次

AlertDialog.Builder builder= new AlertDialog.Builder(getActivity()); 
View dialogView = inflater.inflate(R.layout.dialog_show_note, null); 

です

私は間違いを犯しているか、本に何らかの誤りがあるかどうかはわかりません。 Builderクラスには、のsetViewメソッドが含まれていますか?以下のようにエラー件まで

完全なコード例は次のとおりです。 -

public class DialogNewNote extends DialogFragment { 
    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 

     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
     LayoutInflater inflater = getActivity().getLayoutInflater(); 
     View dialogView = inflater.inflate(R.layout.dialog_new_note, null); 

     builder.setView(dialogView).setMessage("Add a new note"); //error 

    } 
} 
+0

「次は表示されます...」あなたは何の情報源ですか? –

+1

クラスのメソッドを見つけるには、APIドキュメントを参照してください。 –

+0

これは実際に本から来たものです! – pluto20010

答えて

0

私はこれを試してみましたが、私はのためにその同じダイアログ場合は、のonCreate内ではなく、一方onCreateDilaog.Onあなたのコードを配置すべきだと思いますこれをダイアログクラスに拡張した後、通常のフラグメントと同様にonCreateViewメソッドでレイアウトインフレータを提供する必要があります。

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
     View dialogView = getActivity().getLayoutInflater().inflate(R.layout.my_layout, null); 
     builder.setView(dialogView).setMessage("kqhwdi"); 
    } 

個別のアラートダイアログを実現するためには、onCreate()またはonViewCreated()で作成する必要があります。

+0

あなたは本の上記のコードが間違っていることを暗示していますか? – pluto20010

+0

いいえ私はちょうどあなたのやり方を試してみましたが、エラーが発生しました。しかし、それを正常に作成しました。あなたはこの方法で試してみて、それが問題を解決するかどうかを確認しています。 –

+0

私の方法はなかった、私はちょうど本の例を引用した。あなたが言ったように、それは動作します。しかし、私はその本にどんな誤りがあるのか​​を考えたかったのですか? – pluto20010

関連する問題