Android рдореЗрдВ рд╕рдВрд╡рд╛рджред рднрд╛рдЧ 1

рд╢реБрдн рджреЛрдкрд╣рд░ / рд╢рд╛рдо / рд╕реБрдмрд╣, рдкреНрд░рд┐рдп рд╣реЗрдмреНрд░рд╡реЗрдЯреНрд╕ рдФрд░ рдЖрдк,% рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо%!
рдореИрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВ рдЗрд╕ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рд▓реЗрдЦ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рдЙрджреНрдпреЛрдЧ рдореЗрдВ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдкрд╣рд▓реЗ рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЛ рд╕рдореНрдорд╛рдирд┐рдд рд╣реЛрд░реЗрд╢ рджреНрд╡рд╛рд░рд╛ рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ ред
рдФрд░ рдЕрдм рд╣рдо рдХрдЯ рдХреЗ рддрд╣рдд рдЗрд╕ рдореБрджреНрджреЗ (рдЬрд┐рд╕рдореЗрдВ рдХрдИ рдиреБрдХрд╕рд╛рди рд╣реИрдВ) рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдВрдЧреЗред

рд╕рдВрд╡рд╛рдж

рдбрд╛рдпрд▓реЙрдЧ рдПрдХ рд╡рд░реНрдЧ рд╣реИ рдЬреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдФрд░ рд╣рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдирд╢реНрд╡рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░, рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдбрд╛рдпрд▓реЙрдЧ рдХреНрд▓рд╛рд╕ рдореЗрдВ 4 рдЙрдкрд╡рд░реНрдЧ рд╣реИрдВ:

рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, AlertDialog рд╣рдо рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрдВрдж рдХрд░ рджреЗрдВрдЧреЗред

AlertDialog

AlertDialog рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд┐рд▓реНрдбрд░ рд╡рд░реНрдЧ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реА рдорджрдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
рдЕрдм рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдмрд┐рд▓реНрдбрд░ рд╣реИ, рддреЛ рд╣рдо рдЕрдкрдиреЗ рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕ рдХреЛ "рдмрд┐рд▓реНрдб" рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреИрд░рд╛рдореАрдЯрд░ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпреЗ рдореБрдЦреНрдп рд╣реИрдВ:

рдЕрд▓рд░реНрдЯрдбрд╛рдпрд▓реЙрдЧ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
 AlertDialog.Builder builder = new AlertDialog.Builder(activity); builder.setTitle(R.string.dialog_about_title); builder.setMessage(R.string.dialog_about_message); builder.setCancelable(true); builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { //   @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); //    } }); AlertDialog dialog = builder.create(); 

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдореИрдВрдиреЗ setCancelable (рд╕рддреНрдп) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ - рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдмреИрдХ рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдкреБрд╖реНрдЯрд┐рдХрд░рдг рдмрдЯрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╢реНрд░реЛрддрд╛ рднреА рдмрдирд╛рдпрд╛ рдФрд░ рдмрдирд╛рдиреЗ () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред AlertDialog рд╡рд░реНрдЧ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдпрд╛рд░ () рд╡рд┐рдзрд┐ рдЖрдкрдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рддреИрдпрд╛рд░-рдХрд┐рдП рдЧрдП рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдХреЛ рд▓реМрдЯрд╛рддреА рд╣реИред
рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдПрдХ рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕ рдмрдирд╛рдпрд╛ рд╣реИ! рдЕрдЧрд▓рд╛ рдХрд╛рдо рдЗрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рджрд┐рдЦрд╛рдирд╛ рд╣реИред рдпрд╣рд╛рдБ рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:

рджреВрд╕рд░реА рд╡рд┐рдзрд┐ рд╣рдореЗрдВ рдмреЗрд╣рддрд░ рд▓рдЧрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЦреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмреБрдЗрдбрд░ рдФрд░ рдПрд▓рд░реНрдЯрдбрд╛рдпрд▓реЙрдЧ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд▓рд┐рдЦрдирд╛ рдХреЛрдб рдХреА рдкрдардиреАрдпрддрд╛ рдХреЛ рдЦрд░рд╛рдм рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдирдИ рдХрдХреНрд╖рд╛ рдореЗрдВ рд░рдЦрдирд╛ рдЕрдзрд┐рдХ рд╕рдореАрдЪреАрди рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
 public class DialogScreen { public static final int IDD_ABOUT = 1; //    public static final int IDD_SETTINGS = 2; public static final int IDD_RATE = 3; public static AlertDialog getDialog(Activity activity, int ID) { AlertDialog.Builder builder = new AlertDialog.Builder(activity); switch(ID) { case IDD_ABOUT: //   About builder.setTitle(R.string.dialog_about_title); builder.setMessage(R.string.dialog_about_message); builder.setCancelable(true); builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { //   @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); //    } }); return builder.create(); case IDD_RATE: //   Rate the app builder.setTitle(R.string.dialog_rate_title); builder.setMessage(R.string.dialog_rate_message); builder.setCancelable(true); builder.setPositiveButton(R.string.dialog_rate_ok, new DialogInterface.OnClickListener() { //     @Override public void onClick(DialogInterface dialog, int which) { //  dialog.dismiss(); } }); builder.setNeutralButton(R.string.dialog_rate_cancel, new DialogInterface.OnClickListener() { //    @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); //    } }); builder.setNegativeButton(R.string.dialog_rate_buy, new DialogInterface.OnClickListener() { //    AdFree  @Override public void onClick(DialogInterface dialog, int which) { //  dialog.dismiss(); } }); return builder.create(); case IDD_SETTINGS: //   View view = activity.getLayoutInflater().inflate(R.layout.settings, null); //  layout   ID builder.setView(view); builder.setTitle(R.string.dialog_settings_title); builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { //   public void onClick(DialogInterface dialog, int whichButton) { MainActivity.doSaveSettings(); //     MainActivity dialog.dismiss(); } }); builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { //   public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.setCancelable(true); return builder.create(); default: return null; } } } 

рдЗрд╕ рдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХрдорд╛рддреНрд░ рдиреЛрдЯ IDD_SETTINGS рд╕рдВрд╡рд╛рдж рдореЗрдВ рд╕реЗрдЯ рд╡реНрдпреВ (рджреГрд╢реНрдп рджреЗрдЦреЗрдВ) рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрдЧрд╛ред рдЕрдиреНрдп рд╕рднреА рд╕рдВрд╡рд╛рджреЛрдВ рдХреА рддрд░рд╣, AlertDialog рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ - рдЖрдк рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рд▓реЗрдЖрдЙрдЯ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдФрд░ рдЙрдирдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдПрдХ рдЦрд░рд╛рдмреА рд╣реИ: рдЖрдкрдХреЛ рдЗрд╕ рд▓реЗрдЖрдЙрдЯ рдХреЗ рддрддреНрд╡реЛрдВ рдХрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдареАрдХ рдЙрд╕реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬрд╣рд╛рдВ рдЖрдк рдЗрд╕ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рдореБрдЦреНрдп рд▓реЗрдЖрдЙрдЯ рдореЗрдВ IDD_SETTINGS рдбрд╛рдпрд▓реЙрдЧ рдмреЙрдХреНрд╕ рджрд┐рдЦрд╛рддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд▓реЗрдЖрдЙрдЯ рдирд╛рдо рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИ:
 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <SeekBar android:id="@+id/seekVol" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/seekSense" android:layout_marginTop="42dp" /> <TextView android:id="@+id/textVol" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/seekSense" android:layout_marginTop="20dp" android:text="@string/dialog_settings_vol" android:textAppearance="?android:attr/textAppearanceMedium" /> <TextView android:id="@+id/textSense" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:text="@string/dialog_settings_sense" android:textAppearance="?android:attr/textAppearanceMedium" /> <SeekBar android:id="@+id/seekSense" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textSense" /> </RelativeLayout> 

рддрджрдиреБрд╕рд╛рд░, рдореИрдВ рдЗрд╕ рд╡рд┐рдВрдбреЛ рдХреЛ рдореБрдЦреНрдпрддрд╛ рдореЗрдВ рд▓реЛрдб рдХрд░рддрд╛ рд╣реВрдВ:
  AlertDialog dialog = DialogScreen.getDialog(this, DialogScreen.IDD_SETTINGS); dialog.show(); initSettings(dialog); } 

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ MainActivity class рдХреА initSettings рд╡рд┐рдзрд┐ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:
  //  SeekBar       SeekBar sb_sense = (SeekBar)dialog.findViewById(R.id.seekSense); SeekBar sb_vol = (SeekBar)dialog.findViewById(R.id.seekVol); //   SeekBar    sb_sense.setProgress(sense); sb_vol.setProgress(volume); 

рдареАрдХ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдЕрдкрдиреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВ рдЬреИрд╕рд╛ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╕рд╛рд░рд╛рдВрд╢

1) AlertDialog рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИред
2) AlertDialog рдХрд┐рд╕реА рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рд▓реЗрдЖрдЙрдЯ рдХрд╛ рд░реВрдк рд▓реЗ рд╕рдХрддрд╛ рд╣реИ
3) рд╕рдВрд╡рд╛рдж рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ AlertDialog.show () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ
4) рдХрд╕реНрдЯрдо рд▓реЗрдЖрдЙрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЙрд╕ рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рд╕рдВрд╡рд╛рдж рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ

рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдбрд╛рдпрд▓реЙрдЧрдлреНрд░реЗрдЧрдореЗрдВрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдЬрд╛рдПрдЧреА, рдЬрд┐рд╕реЗ 3.0 рд╣рдиреАрдХреЙрдореНрдм рдХреЗ рдмрд╛рдж рд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЖрд▓реЗрдЦ рд╢реБрд░реБрдЖрддреА рдФрд░ Google Play рдХреЛ рдЬреАрддрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХреА quests рдореЗрдВ рдЗрддрдирд╛ рдирд╣реАрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред

рдкреБрдирд╢реНрдЪ

рдпрд╣ рд╣рдмрд░ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рд▓реЗрдЦ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХрд┐рд╕реА рднреА рд░рдЪрдирд╛рддреНрдордХ рдЖрд▓реЛрдЪрдирд╛ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВред рдЕрдЧреНрд░рд┐рдо рдзрдиреНрдпрд╡рд╛рджред

Source: https://habr.com/ru/post/In166469/


All Articles