2012-01-24 10 views
0

私は明示的な指示に非常に感謝しています。これはgoogle android devチュートリアルからのものですが、私はそれを表示する方法を見つけることができません。 alertDialog.show()は、プログラムをエミュレータでクラッシュさせます。私は続行するための最も簡単で、より多くのカスタマイズ方法はDialogFragmentを膨張させることであると思いこのアンドロイドのカスタムダイアログを表示するにはどうしたらいいですか?

alertDialog.show(); 

答えて

0

あなたは活動で次の操作を実行したい:

FragmentTransaction ft = getFragmentManager().beginTransaction(); 
DialogFragment dfrag = new CustomDFrag(); 
dfrag.show(ft,"dialog"); 

そしてDialogFragmentを拡張するクラスのCustomDFragを作成します。そして、あなたがonCreateDialogをオーバーライドして、カスタムレイアウトで、今あなたがこれまでに何をやったか使用しますが、私はそれのTextViewでのみ扱っていないときはましだと思うので

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
    LayoutInflater inflater = getActivity().getLayoutInflater(); 

    View view = inflater.inflate(R.layout.my_layout,null); 

      //this is how you'd get a view from the inflated layout 
    data = (TextView) view.findViewById(R.id.evo_addhist_data); 
    data.setText("lol"); 


      //tell the builder that you wan't that inflated layout to show 
      // and then set the button (negative/positive in this case) if you want 
    builder.setView(
      view) 
      .setPositiveButton("OK", 
        new DialogInterface.OnClickListener() { 
         @Override 
         public void onClick(DialogInterface arg0, int arg1) { 
          // TODO Auto-generated method stub 
         } 
        }) 
      .setNegativeButton("CANCEL", 
        new DialogInterface.OnClickListener() { 

         @Override 
         public void onClick(DialogInterface dialog, 
           int which) { 
          // TODO Auto-generated method stub 
         } 
        }); 

    return builder.create(); 
} 

PS:私はこれをお奨めしました。

+0

私はこれを試して、もう一度やりました。エミュレータは、プログラムが予期せず終了すると報告します。 Logcatは現時点では失敗しています – user465001

+0

あなたはlogcatからどんな反応を得ていますか? – bschultz

+0

私はここに収まるテキストを得ることができませんでした。ここで要点のリンク:https://gist.github.com/1673471 – user465001

0

:最終用途で

public class HelloAndroidActivity extends Activity { 
    /** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    AlertDialog.Builder builder; 
    AlertDialog alertDialog; 

    Context mContext = getApplicationContext(); 
    LayoutInflater inflater = (LayoutInflater) 
    mContext.getSystemService(LAYOUT_INFLATER_SERVICE); 
    View layout = inflater.inflate(R.layout.custom_dialog, 
            (ViewGroup) findViewById(R.id.layout_root)); 

    TextView text = (TextView) layout.findViewById(R.id.text); 
    text.setText("Hello, this is a custom dialog!"); 
    ImageView image = (ImageView) layout.findViewById(R.id.image); 
    image.setImageResource(R.drawable.android); 

    builder = new AlertDialog.Builder(mContext); 
    builder.setView(layout); 
    alertDialog = builder.create(); 
} 

}

関連する問題