درود;
ساخت یک نمونه دیالوگ شخصی:
dialog_add_contact.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="320dp"
android:layout_height="wrap_content"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_gravity="center"
android:layoutDirection="rtl"
android:textDirection="rtl"
android:background="@android:color/transparent">
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/cardViewMain"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="10dp"
card_view:cardElevation="6dp"
clickable="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layoutDirection="rtl"
android:textDirection="rtl"
android:orientation="vertical"
android:layout_marginRight="6dp"
android:layout_marginLeft="6dp"
android:layout_marginTop="3dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_marginRight="6dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal"
android:gravity="center">
<EditText
android:id="@+id/txtName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/EditText.Normal"
android:hint="نام و نام خانوادگی"
android:layout_weight="1"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_weight="1.5">
<Spinner
android:id="@+id/spinRole"
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_gravity="center"
android:layout_marginRight="6dp"
style="@style/Spinner.Normal"/>
<EditText
android:id="@+id/txtRole"
android:layout_width="match_parent"
android:layout_height="30dp"
android:visibility="gone"
android:hint="نقش"
style="@style/EditText.Normal"/>
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:layout_marginTop=" 6dp"
android:orientation="horizontal"
android:gravity="center">
<EditText
android:id="@+id/txtInfo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/EditText.Phone"
android:hint="شماره را وارد کنید"
android:layout_weight="1"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_weight="1.5">
<Spinner
android:id="@+id/spinType"
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_gravity="center"
android:layout_marginRight="6dp"
style="@style/Spinner.Normal"/>
<EditText
android:id="@+id/txtType"
android:layout_width="match_parent"
android:layout_height="30dp"
android:visibility="gone"
android:hint="دیگر"
style="@style/EditText.Normal"/>
</RelativeLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<include
android:layout_width="match_parent"
android:layout_height="wrap_content"
layout="@layout/dialog_item_yes_no"/>
</LinearLayout>
</android.support.v7.widget.CardView>
</android.support.constraint.ConstraintLayout>
final Dialog cDialog;
cDialog = new Dialog(context);
cDialog.requestWindowFeature(Window.FEATURE_NO_TIT LE);
cDialog.setCancelable(true);
cDialog.setCanceledOnTouchOutside(true);
cDialog.setContentView(R.layout.dialog_add_contact );
Objects.requireNonNull(cDialog.getWindow()).setBac kgroundDrawableResource(android.R.color.transparen t);
TextView lblAccept = cDialog.findViewById(R.id.lblAccept);
TextView lblCancell = cDialog.findViewById(R.id.lblCancell);
final EditText txtName = cDialog.findViewById(R.id.txtName);
final EditText txtInfo = cDialog.findViewById(R.id.txtInfo);
final Spinner spinRole = cDialog.findViewById(R.id.spinRole);
final Spinner spinType = cDialog.findViewById(R.id.spinType);
// Typeface tf = Typeface.createFromAsset(context.getAssets(), "fonts/ir_sans.ttf");
// txtName.setTypeface(tf);
// txtInfo.setTypeface(tf);
List<Basic_PersonRoles> lPersonRoles = new ArrayList<>();
List<Basic_ContactTypes> lContactType = new ArrayList<>();
lPersonRoles = geter.getList(Basic_PersonRoles.class);
lContactType = geter.getList(Basic_ContactTypes.class);
spinAdapRole = new SpinAdapter(context, lPersonRoles, "PersonRoleTitle");
spinAdapType = new SpinAdapter(context, lContactType, "ContactTypeTitle");
spinRole.setAdapter(spinAdapRole);
spinType.setAdapter(spinAdapType);
txtInfo.setInputType(getType(1));
txtInfo.setSelection(txtInfo.getText().length());
txtName.setText(lList.get(position).Name);
txtInfo.setText(lList.get(position).ContactInfo);
spinRole.setSelection(spinAdapRole.getItemPosition ("PersonRoleID", Integer.toString(lList.get(position).PersonnelRole ID)));
spinType.setSelection(spinAdapType.getItemPosition ("ContactTypeID", Integer.toString(lList.get(position).ContactTypeID )));
lblAccept.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (txtName.getText().toString().length() > 0 && txtInfo.getText().toString().length() > 0) {
int ContactTypeID = Integer.parseInt(spinAdapType.getItemString(spinTy pe.getSelectedItemPosition(), "ContactTypeID"));
int PersonnelRoleID = Integer.parseInt(spinAdapRole.getItemString(spinRo le.getSelectedItemPosition(), "PersonRoleID"));
String PersonnelRoleName = spinAdapRole.getItemString(spinRole.getSelectedIte mPosition(), "PersonRoleTitle");
lList.get(position).ContactInfo = txtInfo.getText().toString();
lList.get(position).Name = txtName.getText().toString();
lList.get(position).ContactTypeID = ContactTypeID;
lList.get(position).PersonnelRoleID = PersonnelRoleID;
lList.get(position).PersonnelRoleName = txtName.getText().toString();
fragAddCustomer.lContact.get(position).ContactInfo = txtInfo.getText().toString();
fragAddCustomer.lContact.get(position).Name = txtName.getText().toString();
fragAddCustomer.lContact.get(position).ContactType ID = ContactTypeID;
fragAddCustomer.lContact.get(position).PersonnelRo leID = PersonnelRoleID;
fragAddCustomer.lContact.get(position).PersonnelRo leName = txtName.getText().toString();
notifyDataSetChanged();
cDialog.dismiss();
} else
Toast.makeText(context, "مقادیر نباید خالی باشند.", Toast.LENGTH_SHORT).show();
}
});
lblCancell.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
cDialog.dismiss();
}
});
spinType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
txtInfo.setInputType(getType(Integer.parseInt(spin AdapType.getItemString(spinType.getSelectedItemPos ition(), "AndroidKeyboardTypeID"))));
txtInfo.setSelection(txtInfo.getText().length());
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
cDialog.show();