私は明示的な指示に非常に感謝しています。これはgoogle android devチュートリアルからのものですが、私はそれを表示する方法を見つけることができません。 alertDialog.show()は、プログラムをエミュレータでクラッシュさせます。私は続行するための最も簡単で、より多くのカスタマイズ方法はDialogFragmentを膨張させることであると思いこのアンドロイドのカスタムダイアログを表示するにはどうしたらいいですか?
alertDialog.show();
私は明示的な指示に非常に感謝しています。これはgoogle android devチュートリアルからのものですが、私はそれを表示する方法を見つけることができません。 alertDialog.show()は、プログラムをエミュレータでクラッシュさせます。私は続行するための最も簡単で、より多くのカスタマイズ方法はDialogFragmentを膨張させることであると思いこのアンドロイドのカスタムダイアログを表示するにはどうしたらいいですか?
alertDialog.show();
。
あなたは活動で次の操作を実行したい:
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:私はこれをお奨めしました。
:最終用途で
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();
}
}
私はこれを試して、もう一度やりました。エミュレータは、プログラムが予期せず終了すると報告します。 Logcatは現時点では失敗しています – user465001
あなたはlogcatからどんな反応を得ていますか? – bschultz
私はここに収まるテキストを得ることができませんでした。ここで要点のリンク:https://gist.github.com/1673471 – user465001