<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:elevation="4dp"
android:background="@color/colorWhite">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/add_album_title"
android:shadowColor="@color/colorWhite"
android:text="Enter the Album Name"
android:textSize="20sp"
/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/new_album_name"
android:textSize="25sp"
android:hint="Album name"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="2">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/add_new_album_button"
android:text="Add"
android:textAllCaps="false"/>
<Button
android:layout_width="wrap_content"
android:layout_weight="1"
android:layout_height="wrap_content"
android:id="@+id/cancel_new_album_button"
android:text="Cancel"
android:textAllCaps="false"/>
</LinearLayout>
</LinearLayout>
Bu kodu düzen olarak kullanıyorum. Bunu, Etkinliğimde bir iletişim kutusu olarak ayarlamak istiyorum. Ama koştuğumda sadece görünüyor. Android'de çok fazla stil bilgisine sahip değilim. Birisi lütfen İletişim Kutusu'nu şekillendirmeye yardım edin.Tam Özel İletişim Kutusu Android'de
İşte bunu uygulamak için benim kodum. Sadece düğmelerini açıkladım çünkü şu an odak noktamız şekillendirme ve daha çekici hale getirme.
public class AddAlbumDialog extends DialogFragment {
Button addButton,cancelButton;
EditText newAlbumName;
TextView title;
Context context;
public AddAlbumDialog() {
//Empty Constructor
}
@Override
public void onStart() {
super.onStart();
Dialog dialog = getDialog();
if (dialog != null) {
dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
dialog.getWindow().setGravity(Gravity.CENTER);
}
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
// Get the layout inflater
LayoutInflater inflater = getActivity().getLayoutInflater();
builder.setCancelable(false);
// Inflate and set the layout for the dialog
// Pass null as the parent view because its going in the dialog layout
builder.setView(inflater.inflate(R.layout.add_album_dialog_fragment,null));
// Add action buttons
// .setPositiveButton(R.string.add_album, null)
// @Override
// public void onClick(DialogInterface dialog, int which) {
// Dialog d = (Dialog) dialog;
//
// EditText newAddAlbum = (EditText) d.findViewById(R.id.new_album_name);
// newAddAlbum.requestFocus();
// if (newAddAlbum.getText().toString().trim().isEmpty()) {
// Toast.makeText(getActivity(), "Empty Name Cannot Add", Toast.LENGTH_SHORT).show();
//
// } else {
// mListener.onDialogPositiveClick(AddAlbumDialog.this, newAddAlbum);
// }
// }
// })
//Add Negative Button
// .setNegativeButton(R.string.cancel_dialog, new DialogInterface.OnClickListener() {
// @Override
// public void onClick(DialogInterface dialog, int which) {
// Toast.makeText(getActivity(), "Cancel Called Name", Toast.LENGTH_SHORT).show();
// mListener.onDialogNegativeClick(AddAlbumDialog.this);
// dismiss();
// }
// });
return builder.create();
}
/* The activity that creates an instance of this dialog fragment must
* implement this interface in order to receive event callbacks.
* Each method passes the DialogFragment in case the host needs to query it. */
public interface AddAdlbumListener {
public void onDialogPositiveClick(DialogFragment dialog,EditText newAlbumName);
public void onDialogNegativeClick(DialogFragment dialog);
}
// Use this instance of the interface to deliver action events
AddAdlbumListener mListener;
// Override the Fragment.onAttach() method to instantiate the NoticeDialogListener
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
// Verify that the host activity implements the callback interface
try {
// Instantiate the NoticeDialogListener so we can send events to the host
mListener = (AddAdlbumListener) activity;
} catch (ClassCastException e) {
// The activity doesn't implement the interface, throw exception
throw new ClassCastException(activity.toString() + " must implement NoticeDialogListener");
}
}
}
Ana etkinlikte bunu göstermek için bu kodu kullanıyorum.
AddAlbumDialog addAlbumDialog=new AddAlbumDialog();
addAlbumDialog.show(getSupportFragmentManager(),"Custom Dialog");
Eğer birileri yardım ederse çok minnettar olacağım.
Hızlı ve yardımsever yanıtınız için http://www.mkyong.com/android/android-custom-dialog-example/ –