menusearch
javapro.ir

جلسه هجدهم | ساخت برنامه شبیه به اینستاگرام | پیاده سازی صفحه جستجو

جستجو
سه شنبه ۱۳ آذر ۱۴۰۳ | ۰:۴۱:۴۴
۱۳۹۹/۸/۱ پنج شنبه
(3)
(0)
جلسه هجدهم | ساخت برنامه شبیه به اینستاگرام | پیاده سازی صفحه جستجو
جلسه هجدهم | ساخت برنامه شبیه به اینستاگرام | پیاده سازی صفحه جستجو

به نام خدا

 

 

آموزش برنامه نویسی اندروید
آموزش پروژه محور ساخت اینستاگرام
موضوع:پیاده سازی صفحه جستجو
جلسه: هجدهم
مدرس : محمد مهدی طاهری

 

 

 

سلام و عرض ادب خدمت همه شما کاربران عزیز سایت جاواپرو
امیدوارم حالتو خوب و ایام به کامتون باشه
بعد از یه وقفه نسبتا طولانی با جلسه 18 دوره برنامه نویسی اینستاگرام در خدمتتون هستم
بریم سر اصل مطلب :-)


در جلسه قبل ما پست هامون رو از سرور گرفتیم و توی برنامه نمایش دادیم
تو این جلسه میخوایم کسایی که اینستا دارن رو سرچ کنیم و اکانتاشون رو پیدا کنیم.
پروژه مون رو باز میکنیم به SearchFragment میریم.
ما میخوایم وقتی که رو دکمه search کلیک شد هرچیزی رو که ما توی فیلد سرچ نوشتیم رو سرچ کنه
اگه بود بهمون بگه آقا اکانتی که شما میخواید اینستا داره
اگر هم نبود که میگه نداره
پس رویداد کلیک رو برای کلید سرچ تعریف میکنیم به این شکل:

 

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

  }
});

 

نمونه کد 1


حالا ما باید به سرور درخواست بدیم و بهش بگیم این اسم اکانتی که میدیمت هست توی دیتابیس یا نه
درخواست رو با volley میدیم پس لازمه توی onCreateView یک صف درخواست تعریف کنیم به این شکل:

 

final RequestQueue queue = Volley.newRequestQueue(getContext());

 

نمونه کد 2

 

پس از اون توی رویداد کلیک درخواست رو مینویسیم
چون شما دیگه بعد از چندین بار درخواست الان حرفه ای شدین دیگه من کل درخواست رو میذارم و بعد توضیح میدم که فرایند درخواست به چه صورت انجام میشه:

 

StringRequest request = new StringRequest(Request.Method.POST, Server.server_address + "search.php", new Response.Listener<String>() {
  @Override
  public void onResponse(String response) {
      if (response.contains("done")) {
          Toast.makeText(getContext(), "user found ", Toast.LENGTH_SHORT).show();
      } else {
          Toast.makeText(getContext(), "user not found ", Toast.LENGTH_SHORT).show();
      }

  }
}, new Response.ErrorListener() {
  @Override
  public void onErrorResponse(VolleyError error) {
      Toast.makeText(getContext(), "unable connect to server", Toast.LENGTH_SHORT).show();
  }
}
) {
  @Override
  protected Map<String, String> getParams() {
      Map<String, String> map = new HashMap<>();
      map.put("username", edt_search.getText().toString());
      return map;
  }
};
queue.add(request);


نمونه کد 3


نمونه کد 3 کل بدنه رویداد کلیک و عمل درخواست به سرور هست.
درخواست به این صورت هست که ما هرچی رو که توی فیلد جستجو تایپ میکنیم به سرور میفرستیم با کمک متد getParams() و بعد از اون در پاسخی که از سرور میاد اگر حاوی done بود یعنی اینکه این یوزرنیمی رو که سرچ کردیم توی دیتابیسمون هست و اگه هم غیر از این بود که هیچی و به کاربر میگیم اکانت وجود نداشته اصلا.
کد کلی فرگمنت سرچ رو میذارم و میریم و سمت سرور رو برنامه نویسی میکنیم

 

public class SearchFragment extends Fragment {

  EditText edt_search;
  Button search;

  public SearchFragment() {

  }

  public static SearchFragment newInstance() {
      SearchFragment fragment = new SearchFragment();
      return fragment;
  }

  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);

  }

  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container,
                            Bundle savedInstanceState) {
      View view = inflater.inflate(R.layout.fragment_search, container, false);
      edt_search = view.findViewById(R.id.edt_search);
      search = view.findViewById(R.id.btnsearch);
      final RequestQueue queue = Volley.newRequestQueue(getContext());
      search.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
              StringRequest request = new StringRequest(Request.Method.POST, Server.server_address + "search.php", new Response.Listener<String>() {
                  @Override
                  public void onResponse(String response) {
                      if (response.contains("done")) {
                          Toast.makeText(getContext(), "user found ", Toast.LENGTH_SHORT).show();
                      } else {
                          Toast.makeText(getContext(), "user not found ", Toast.LENGTH_SHORT).show();
                      }

                  }
              }, new Response.ErrorListener() {
                  @Override
                  public void onErrorResponse(VolleyError error) {
                      Toast.makeText(getContext(), "unable connect to server", Toast.LENGTH_SHORT).show();
                  }
              }
              ) {
                  @Override
                  protected Map<String, String> getParams() {
                      Map<String, String> map = new HashMap<>();
                      map.put("username", edt_search.getText().toString());
                      return map;
                  }
              };
              queue.add(request);


          }
      });
      return view;
  }

}

 

 

نمونه کد 4

 

خب حالا به پوشه سرورمون میریم و یک فایل جدید به اسم search.php میسازیم
کد کلیش خیلی ساده هست و مشابه ورود کاربر است باز هم بنده کلش رو میذارم و توضیح میدم که از چه قرار هست.

 

<?php

      if($_SERVER['REQUEST_METHOD']=='POST'){

      define('HOST','localhost');
      define('USER','root');
      define('PASS','');
      define('DB','instagram');

      $conn = mysqli_connect(HOST,USER,PASS,DB);

      if (!$conn) {
      die("Connection failed" );
      }

      $username = mysqli_real_escape_string($conn, $_POST['username']);

      $stmt = $conn->prepare(" select * from user WHERE username = ?");
      $stmt->bind_param("s", $username);
      $stmt-> exec ute();
      $stmt->store_ result ();

      if($stmt->num_rows > 0){
      echo "done";

      }else{
      echo "error";

      }
      mysqli_close($conn);
      }

      ?>


نمونه کد 5


تگ php رو باز میکنیم و میگیم اگر متد درخواستی از سمت کلاینت ما اگر post بود بیا و اتصال به دیتابیس رو برقرار کن.
پس از اون یوزرنیم رو که از کلاینت فرستادیم دریافت کن و توی یک متغیر به نام username ذخیره کن.
حالا باید کوئریمون رو به دیتابیس اعمال کنیم و بگیم هر تمام اونجاهایی که یوزرنیم توی دیتابیس با یوزرنیمی که کلاینت فرستاده برابره رو انتخاب کن و توی خودت ذخیره کن.
اگر تعداد یوزر های که انتخاب کردی بیشتر ازصفر بود یعنی یک یوزر وجود داره پس done رو میفرستیم برای کلاینت
اگر هم تعداد یوزرها صفر بود که error رو میفرستیم و اتصالمون رو هم از دیتابیس قطع میکنیم.
کارمون تموم شد حالا میریم و برنامه رو تست میکنیم
شبیه ساز سرور رو اجرا میکنیم
ایپی رو چک میکنیم حتما که با ایپی کلاس server برابر باشه.
برنامه رو اجرا میکنیم
به بخش سرچ میریم و یک یوزر نیم که توی دیتابیس هست رو سرچ میکنیم به عنوان مثال javapro
بعد از اون کلید سرچ رو میزنیم و میبینیم که بهمون user found نمایش داده میشه.
*نکته مهم: بعضی از دوستان که اندروید 9 به بالا داشتن به بنده پیام دادن و گفتن برنامه برامون اجرا نمیشه و به سرور متصل میشه
برای اندروید 9 به بالا باید به manifests برید
و در تگ application این عبارت رو بنویسید تا مشکلتون حل بشه

 

android:usesCleartextTraffic="true"

 

بدین ترتیب این جلسه هم به پایان رسید
امیدوارم که بهره لازم رو از این جلسه برده باشید و بتونه تو پیشرفتتون موثر باشه
نظر دادن به این دوره رو هم فراموش نکنید
مراقب خودتون باشید
خداوند یار و نگهدارتون باشه.


 

امید است افرادی که از تمکن مالی برخوردار هستند برای بقای سایت جاواپرو و رایگان ماندن آموزش ها از سایت جاواپرو حمایت مالی کنند.

 

 


ادامه حیات سایت جاواپرو به حمایت مالی (دونیت) از طرف شما کاربر عزیز بستگی دارد....



لینک دانلود آموزش رایگان اندروید

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

 

 

عضویت در کانال تخصصی آموزش جاوا و اندروید در تلگرام

با عضویت در کانال تخصصی برنامه نویسی جاوا و اندروید جاواپرو از ما حمایت کنید

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

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

0 نظر
هدر سایت
مشاهده سرفصل ها و ثبت نام در دوره 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)
سفارش انجام تحقیق و تهیه مقاله
سوالات متداول برنامه نویسی
جدیدترین مطالب
گفتگو را شروع کنید
مشاوره ،تدریس خصوصی و سفارش انجام انواع پروژه های برنامه نویسی