menusearch
javapro.ir

جلسه پانزدهم : ورود خودکار کاربر به اینستاگرام

جستجو
شنبه ۱ دی ۱۴۰۳ | ۱۷:۳۹:۱
۱۳۹۹/۱/۱۸ دوشنبه
(1)
(0)
جلسه پانزدهم : ورود خودکار کاربر به اینستاگرام
جلسه پانزدهم : ورود خودکار کاربر به اینستاگرام

آموزش پروژه محور اندروید ساخت برنامه ای شبیه به اینستاگرام

 

عرض سلام و درود خدمت شما دوستان عزیز و همراهان همیشگی جاوا پرو
امیدوارم حالتون خوب و ایام به کامتون باشه
با کمی تاخیر به سراغ جلسه 15 میریم که مطالب کمتری رو داره و جلسه کوتاهی هست.
در جلسه قبل ما ورود کاربر رو برنامه نویسی کردیم
در حال حاضر هر بار که کاربر برنامه اینستاگرام رو میبنده و بخواد دوباره وارد بشه باید مجددا نام کاربری و رمز عبور رو وارد کنه که این چندان خوشایند نیست.
پس بریم و با هم دیگه برنامه نویسی کنیم اینکه وقتی که کاربر یکبار لاگین کرد دیگه نیازی به ورود اطلاعات نباشه مگر اینکه برنامه رو حذف کنه.
برای اینکار مجددا از ابزار shared preferences استفاده میکنیم.
من ابتدا یک توضیح مختصر بدم خدمتتون که چگونه این کار رو انجام میدیم.
ما باید اخرین وضعیت کاربر که لاگین شده یا نه رو یه جا ذخیره کنیم
یعنی چی این حالا؟
یعنی ما یکی رو مامور کنیم هروقت کاربر لاگین شد بهمون بگه کاربر لاگین شد و وقتی برنامه رو بستیم هم این اقا یادش نره که بهمون بگه کاربر لاگین شده قبلا.
کسی که قراره این کار رو برامون انجام بده یک boolean هست که میگه عملیات ما true هست یا false
حالا برا اینکه یادش هم نره
از shared preferences استفاده میکنیم و اخرین وضعیتش رو توش ذخیره میکنیم.
همه کاری که باید انجام بدیم اینه.
پس بریم و پیاده سازیش کنیم.
میریم توی Login Activity
توی همون شرطی که اگه پاسخ سرور done بود و لاگین با موفقیت بوده ابتدا اینکار رو انجام میدیم:

 

SharedPreferences shp = getSharedPreferences("shp", MODE_PRIVATE);
shp.edit().putBoolean("login", true).apply();

نمونه کد 1


یک shared preferences میسازیم و یک Boolean رو با کلید "login" و مقدار true درونش ذخیره میکنیم.
به این ترتیب هر وقت که کاربر لاگین میشه مقدار true رو درون خودش ذخیره میکنه.
حالا کی باید از این مقدار استفاده کرد؟
وقتی که برنامه باز میشه اکتیویتی لانچر ما یا همون اکتیویتی که اول از همه بهمون نشون داده میشه همین Login Activity
هستش
پس توی قسمت onCreate باید بهش بگیم اگه مقدار Boolean با کلید "login" ،true بود دیگه این اکتیویتی ساخته نشه و مستقیما به MainActivity بره.
به این شکل:

 

final SharedPreferences preferences = getSharedPreferences("shp", MODE_PRIVATE);
if (preferences.getBoolean("login", false) == true) {
  startActivity(new Intent(LoginActivity.this, MainActivity.class));
  finish();
}


نمونه کد 2


*شما میتونید تمام این موارد رو در یک کلاس جداگانه نیز پیاده سازی کنید و کلاس رو فراخونی کنید.
نمونه کد کلی و نهایی Login Activity به این شکله:

 

public class LoginActivity extends AppCompatActivity {
  EditText username, password;
  Button login;
  TextView signup;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_login);
      username = findViewById(R.id.edt_username_login);
      password = findViewById(R.id.edt_password_login);
      login = findViewById(R.id.btn_login);
      signup = findViewById(R.id.btn_signup_login);

      final RequestQueue queue = Volley.newRequestQueue(this);
      final SharedPreferences preferences = getSharedPreferences("shp", MODE_PRIVATE);
      if (preferences.getBoolean("login", false) == true) {
          startActivity(new Intent(LoginActivity.this, MainActivity.class));
          finish();
      }
      signup.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
              startActivity(new Intent(LoginActivity.this, SignupActivity.class));
              finish();
          }
      });


      login.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {

              if (username.getText().toString().isEmpty() || password.getText().toString().isEmpty()) {
                  Toast.makeText(LoginActivity.this, "Please fill the fields Correctly", Toast.LENGTH_SHORT).show();
              } else {
                  StringRequest login = new StringRequest(Request.Method.POST, Server.server_address + "login.php", new Response.Listener<String>() {
                      @Override
                      public void onResponse(String response) {
                          if (response.contains("done")) {
                              SharedPreferences shp = getSharedPreferences("shp", MODE_PRIVATE);
                              shp.edit().putBoolean("login", true).apply();
                              startActivity(new Intent(LoginActivity.this, MainActivity.class));
                              finish();
                              Toast.makeText(LoginActivity.this, "Login successfully", Toast.LENGTH_SHORT).show();
                          } else if (response.contains("error")) {
                              Toast.makeText(LoginActivity.this, "Username or password is incorrect", Toast.LENGTH_SHORT).show();
                          } else {
                              Toast.makeText(LoginActivity.this, "Unable connect to server", Toast.LENGTH_SHORT).show();
                          }

                      }
                  }, new Response.ErrorListener() {
                      @Override
                      public void onErrorResponse(VolleyError error) {
                          Toast.makeText(LoginActivity.this, "Unable connect to server", Toast.LENGTH_SHORT).show();
                      }
                  }) {
                      @Override
                      protected Map<String, String> getParams() {
                          Map<String, String> params = new HashMap<>();
                          params.put("username", username.getText().toString());
                          params.put("password", password.getText().toString());
                          return params;
                      }
                  };
                  queue.add(login);
              }
          }
      });

  }
}


نمونه کد 3


خب به این ترتیب این جلسه هم اتمام میرسه
در جلسات اینده با ما همراه باشید.
خداوند یار و نگهدارتون.


این جلسه آموزشی را می‌توانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)

 

 

 

 

دانلود رایگان کتاب اموزش زبان برنامه نویسی جاوا

لینک دانلود کتاب

 

 


نشر این مطلب با ذکر منبع (لینک سایت) بلامانع است.
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا
عضو کانال تلگرام ما شوید.

نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

0 نظر
هدر سایت
دوره برنامه نویسی Spring Core
مشاهده سرفصل ها و ثبت نام در دوره Spring Boot جاواپرو  [کلیک کنید]
آموزش پروژه محور اسپرینگ بوت(Spring Boot)-سیستم دانشگاه
ثبت نام در دوره آموزش Spring security
دوره معماری میکروسرویس ها (Microservices) با استفاده از Spring Boot و Spring Cloud
دوره پرتاب | آموزش پیش نیازهای برنامه نویسی
دوره آموزش مبانی زبان برنامه نویسی جاوا
دوره آموزش مفاهیم پیشرفته زبان برنامه نویسی جاوا
مقدمه ای از زبان برنامه نویسی جاوا(java)
آموزش زبان برنامه نویسی جاوا
آموزش گرافیک در زبان برنامه نویسی جاوا
آموزش مدیریت چیدمان گرافیکی در زبان جاوا
آموزش ساخت بازی دوبعدی در زبان جاوا
Collection ها در زبان برنامه نویسی جاوا
آموزش پروژه محور ساخت برنامه مدیریت بانک با JavaFX
نمونه پروژه های رایگان زبان جاوا
آموزش دیتابیس در زبان برنامه نویسی جاوا
نمونه مثال پایه ای زبان برنامه نویسی جاوا
نمونه مثال String در زبان برنامه نویسی جاوا
آموزش جامع برنامه نویسی JavaFX
آموزش ساخت برنامه آزمون تستی در JavaFX
آموزش برنامه نویسی سوکت در جاوا
آموزش ساخت برنامه دفترچه تلفن با JavaFX
آموزش ساخت ربات ساده تلگرام با زبان جاوا
آموزش ساخت برنامه ماشین حساب با JavaFX
آموزش ساخت برنامه ساده مدیریت ایمیل ها با JavaFX
دوره آموزش Spring Boot
سفارش انجام پروژه زبان برنامه نویسی جاوا(JAVA)
سفارش انجام پروژه برنامه نویسی متلب(MATLAB) با قیمت منصفانه و تحویل به موقع
سفارش انجام پروژه زبان برنامه نویسی سی شارپ (#C)
سفارش انجام پروژه زبان برنامه نویسی سی(C)
سفارش انجام پروژه زبان برنامه نویسی پایتون(Python)
سفارش انجام پروژه زبان برنامه نویسی PHP (پی اچ پی)
سفارش انجام پروژه زبان برنامه نویسی اسمبلی(Assembly)
سفارش انجام پروژه زبان برنامه نویسی جاوا اسکریپت (Javascript)
سفارش انجام پروژه هوش مصنوعی
سفارش انجام پروژه طراحی الگوریتم
سفارش انجام پروژه ساختمان داده ها
سفارش انجام پروژه مهندسی نرم افزار
سفارش انجام پروژه شبکه های کامپیوتری
سفارش انجام پروژه پایگاه داده: دیتابیس (database)
 سفارش انجام پروژه سیستم عامل
سفارش انجام پروژه پاورپوینت(PowerPoint)
سفارش انجام پروژه اکسل (Excel)
سفارش انجام تحقیق و تهیه مقاله
سوالات متداول برنامه نویسی
جدیدترین مطالب