اذهب إلى المحتوى

لوحة المتصدرين

  1. Flutter Dev

    Flutter Dev

    الأعضاء


    • نقاط

      9

    • المساهمات

      787


  2. Mohamd Imran

    Mohamd Imran

    الأعضاء


    • نقاط

      8

    • المساهمات

      1071


  3. ماجد النجار

    ماجد النجار

    الأعضاء


    • نقاط

      4

    • المساهمات

      26


  4. Mohammed Saber6

    Mohammed Saber6

    الأعضاء


    • نقاط

      3

    • المساهمات

      1036


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 05/29/20 in أجوبة

  1. هل لا بد من مشاهدت جميع الفديوهات بالترتيب..؟
    1 نقطة
  2. ما هي العمليات الحسابية الثلاث التي تحقق القيمة رقم 2 ؟ وكذلك ما هي العمليات الحسابية الثلاث ليعطي الناتج 3 بإستخدام الرقم 4 أربع مرات ؟
    1 نقطة
  3. مشكلة محرر الاكواد عندي ما يقبل الارقام بالعربي رغم انه يقبل الكلام بالعربي لكن ما يقبل الارقام ماني عارف ايش المشكلة غيرت محرر الاكواد، نزلت اللغة الهندية كمان ما مشي الحال ياليت تفيدوني وشكرا..
    1 نقطة
  4. انا جهازي ويندوز وهذه الاعدادات اللي معرفة عندي من اول
    1 نقطة
  5. لما انسخ الكود حقك تطلع لي الارقام بالعربي لكن لما اكتب بنفسي ما تجيني بالعربي
    1 نقطة
  6. انا اكتب html بمحرر الاكواد atom وجربت visual studio والمشكلة عندي في الارقام العربية لما اكتبها تظهر عندي في المتصفح باللغة الانجليزية رغم ان الحروف بالعربي تظهر ومافيها اي مشكلة المشكلة عندي بس بالارقام
    1 نقطة
  7. @Mohamd Imran لقد فهمتك ي غالي ربي يعطيك الف صحه وعافيه يا رب والعذر والسموحه منك على الاطاله كثير ربي يقدرني وارد لك هذا الدين في يوم
    1 نقطة
  8. ولكن انا كنت اقصد هل دائما الكود ينكتب في كلاس السيرفر او ممكن كتابته في الكلاسات الثانيه اي في موقع الذي ارغب باستخدمه فيه؟اذا ممكن كيف رح نربطه في كلاسات الثانيه من اجل ان يعمل ؟ @Mohamd Imran
    1 نقطة
  9. هي فعلياً تعمل دائما في الخلفية (تختلف في بعض إصدارات الأندرويد),أي لا تحتاج إلى تشغيلها كل مدة , لكن أفضل إداء أو أسلوب لعمل هكذا نوع من التطبيقات ,أن تقوم بعمل قاعدة بيانات محلية sqllite db وتخزين البيانات القادمة من ال API في تلك القاعدة حتى عند عدم توفر إتصال بالإنترنت ينطلق الإشعار بناء على البيانات المحملة مسبقاً من ال API ومن هنا تستطيع عمل كويري لقاعدة البيانات المحلية (أو من خلال عمل API لتلقي الطلبات وإعادة إرسال التعليقات بناء على Id مستخدم معين) لطلب التعليقات الجديدة لمستخدم معين
    1 نقطة
  10. @Mohamd Imran لقد صار شغال ميه ميه ربي يعطيك الف صحه وعافيه يا غالي وربي يقدرني وارجع لك هذا الفضل ما قصرت معي وربي حليت مشكله كبيره في تطبيقي سوال اخير بس ي غالي لو بكلف عليك الان احنا عملنا الكود في كلاس my server وهو شغال ميه ميه ولكن لو بغينا نعمل لكلاس في صفحة التعليقات عشان يجيب تعليقات الاعضاء اشلون بنربط الداله هذا الخاصه ب الفولي او ب جلب البيانات ب السيرفر عشان تصير تشتغل كل شوي ؟ الفكره حقيقي هذا ما واضحه معي فيها نوعا من الغموض لنه الان الكود يجيب لي جميع الادروس في الجدول او التعليقات ولكن بشكل عام لتطبيق @Mohamd Imran في الاصدارات الجديده يعمل نظام الاشعارات في القديمه يعمل ولكن يحدث كراش ل تطبيق وينهار مع وجود لوجت التالي 05-29 17:55:33.310 1955-1955/com.example.myapplication E/AndroidRuntime: FATAL EXCEPTION: main java.lang.SecurityException: Requires VIBRATE permission at android.os.Parcel.readException(Parcel.java:1425) at android.os.Parcel.readException(Parcel.java:1379) at android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag(INotificationManager.java:295) at android.app.NotificationManager.notify(NotificationManager.java:124) at android.app.NotificationManager.notify(NotificationManager.java:103) at com.example.myapplication.MyService.notifaction(MyService.java:95) at com.example.myapplication.MyService.access$000(MyService.java:29) at com.example.myapplication.MyService$1.onResponse(MyService.java:128) at com.example.myapplication.MyService$1.onResponse(MyService.java:117) at com.android.volley.toolbox.JsonRequest.deliverResponse(JsonRequest.java:83) at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:106) at android.os.Handler.handleCallback(Handler.java:615) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4745) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method) 05-29 17:55:33.522 1955-1959/com.example.myapplication D/dalvikvm: GC_CONCURRENT freed 361K, 6% free 12220K/12871K, paused 12ms+15ms, total 63ms ايضا توجد مشكلة التكرار هو شغال هو الوقت هذا مافيها مشكله المشكله يعطيني اخر رقم طول الوقت يعني يكرر العملية بدون توقق المتفرض اذا كان الرقم ك السابق لا يرسل لي اشعارات لني قد سبق وقرارت المووضوع
    1 نقطة
  11. اه أعتذر لم أقم بتعريف ال notification manger في الكود فقط أضف التالي فوق جملة الشرط أي هكذا NotificationManager notifManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); if (notifManager == null) { notifManager = (NotificationManager)getSystemService(this.NOTIFICATION_SERVICE); } وبخصوص هذا من الأندرويد ستديو هذا تحذير للإصدارات القديمة لكن لا عليك منه
    1 نقطة
  12. @Mohamd Imran قمت بعمل الكود كل شي تمام فقط notifManager Cannot resolve symbol 'notifManager' وايضا NotificationCompat.Builder 'Builder(android.content.Context)' is deprecated مرفق لك صور لتوضيح في الرابط التالي https://gofile.io/d/QMdjhr
    1 نقطة
  13. صحيح ,لعمل إشعار لجميع إصدرات أندرويد قمت بعمل الكود التالي لك ,سيتفحص إصدار الأندرويد لديك وسيتم إطلاق الإشعار بالطريقة المناسبة للإصدار الجديد final int NOTIFY_ID = 1002; String name = "my_package_channel"; String id = "my_package_channel_1"; // يمكنك إبقائه كماهوid القناة String description = "my_package_first_channel"; // يمكنك إبقائه كما هو وصف القناة Intent intent; PendingIntent pendingIntent; NotificationCompat.Builder builder; if (notifManager == null) { notifManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { int importance = NotificationManager.IMPORTANCE_HIGH; NotificationChannel mChannel = notifManager.getNotificationChannel(id); if (mChannel == null) { mChannel = new NotificationChannel(id, name, importance); mChannel.setDescription(description); //تفعيل الرجاج mChannel.enableVibration(true); mChannel.setLightColor(Color.GREEN); //تشغيل الرجاج mChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400}); notifManager.createNotificationChannel(mChannel); } builder = new NotificationCompat.Builder(this, id); intent = new Intent(this, MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); pendingIntent = PendingIntent.getActivity(this, 0, intent, 0); builder.setContentTitle("تعليق جديد") .setSmallIcon(android.R.drawable.ic_popup_reminder) // هنا ضع أيقونة من مجلد drawable .setContentText("قام مستخدم بالتعليق على منشورك") .setDefaults(Notification.DEFAULT_ALL) .setAutoCancel(true) .setContentIntent(pendingIntent) .setTicker(title) .setVibrate(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400}); } else { builder = new NotificationCompat.Builder(this); intent = new Intent(this, MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); pendingIntent = PendingIntent.getActivity(this, 0, intent, 0); builder.setContentTitle("تعليق جديد") .setSmallIcon(android.R.drawable.ic_popup_reminder) // هنا ضع أيقونة من مجلد drawable .setContentText("لديك تعليق جديد") .setDefaults(Notification.DEFAULT_ALL) .setAutoCancel(true) .setContentIntent(pendingIntent) .setTicker(title) .setVibrate(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400}) .setPriority(Notification.PRIORITY_HIGH); } Notification notification = builder.build(); notifManager.notify(NOTIFY_ID, notification);
    1 نقطة
  14. @Mohamd Imran JSONObject hit = jsonArray.getJSONObject(0); String idtopic = hit.getString("idtopic"); int lastThread = Integer.parseInt(String.valueOf(idtopic)); JSONObject jsonObject = null; Toast.makeText(MyService.this, lastThread + ":", Toast.LENGTH_SHORT).show(); عملت ازاله for كامل وهو شغال ايضا تمام ي غالي بس باقي مشكلة ظهور التنبيه بدل التوست مسج وحسب ما فهمت الان ايضا يجب عمل قناة مع الاندويد الجديد انا جربت الكود الذي ادرجته انته ولكن لم يظهر شي لي
    1 نقطة
  15. السلام عليكم لدي سؤال انا سجلت ب مستقل منذ زمن و عندها لم اكن اعرف كيف يعمل كنت اجرب و الان عدت عليه فيوجد طلب مستبعد هل يؤثر على وافقة العميل او نظرته لي
    1 نقطة
  16. صحيح ,وهو هكذا سيأتي لك بجميع السجلات التي يتم إرجاعها من ال API على عددها لاحظ هنا في ال for loop إستخدمنا طول المصفوفة jsonArray.length() أي مثلاً تم إرجاع ٣ سجلات فإنه سيظهر ٣ سجلات بناء على عدد العناصر في المصفوفة for (int i = 0; i < jsonArray.length(); i++) { JSONObject hit = jsonArray.getJSONObject(i); String idtopic =hit .getString("idtopic"); int lastThread=Integer.parseInt(String.valueOf(idtopic)); JSONObject jsonObject = null; Toast.makeText(MyService.this, lastThread+":", Toast.LENGTH_SHORT).show(); } لكن إن أردت فقط عرض سجل واحد يمكنك عمل التالي للوب بدل jsonArray.length() ضع الرقم - 1 for (int i = 0; i < 2; i++) { JSONObject hit = jsonArray.getJSONObject(i); String idtopic =hit .getString("idtopic"); int lastThread=Integer.parseInt(String.valueOf(idtopic)); JSONObject jsonObject = null; Toast.makeText(MyService.this, lastThread+":", Toast.LENGTH_SHORT).show(); } وهكذا سيرجع لك سجل واحد
    1 نقطة
  17. @Mohamd Imran هلا بيك ي غالي اعذرني على تاخر الرد كنت احاول اكتشف السبب فعلا لقد حلت المشكله ربي يعطيك الف صحه وعافيه الكود الحين صار شغال الخطاء كان في السطر التالي JSONObject hit = jsonArray.getJSONObject(i); String idtopic =hit .getString("idtopic"); المفترض استخدم hit بدل response الحين هو شغال ولكن فيه مشكله وحده فقط لما اضع الكود حسب توصيتك بشكل التالي JSONObject hit = jsonArray.getJSONObject(i); يصير يقرا لي الاسطر كلها من الاعلى الى الاصغر مسج توست 3 ثم مسج توست 2 ثم مسج توست 1 ولما اكتب السطر بشكل التالي JSONObject hit = jsonArray.getJSONObject(0); ياتي لي باخر ID لدي ولكن يتم تكراره بحسب عدد الاسطر مثلا انا لدي الان 3 سجلات في قاعدة البيانات يتم اظهار هي 3 ل ث مرات متتاليه خلف بعض مع العلم بانا كود الVOlley اصبح كالتالي public void run_loop(){ String url = "http://00000000000/testnet/android_register_login/ShowAllData.php"; JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { try { JSONArray jsonArray = response.getJSONArray("data"); for (int i = 0; i < jsonArray.length(); i++) { JSONObject hit = jsonArray.getJSONObject(i); String idtopic =hit .getString("idtopic"); int lastThread=Integer.parseInt(String.valueOf(idtopic)); JSONObject jsonObject = null; Toast.makeText(MyService.this, lastThread+":", Toast.LENGTH_SHORT).show(); } } catch (JSONException e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { error.printStackTrace(); } }); RequestQueue requestQueue = Volley.newRequestQueue(this); requestQueue.add(request); Handler handler=new Handler(); handler.postDelayed(new Runnable(){ @Override public void run() { run_loop(); } },20000); } @Mohamd Imran قمت بعمل الكود كالتالي الان التوست مسج يظهر ولكن الاشعارات لا تظهر في الاعلى public void run_loop(){ String url = "http://00000000/testnet/android_register_login/ShowAllData.php"; JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { try { JSONArray jsonArray = response.getJSONArray("data"); for (int i = 0; i < jsonArray.length(); i++) { JSONObject hit = jsonArray.getJSONObject(i); String idtopic =hit .getString("idtopic"); int lastThread=Integer.parseInt(String.valueOf(idtopic)); JSONObject jsonObject = null; Toast.makeText(MyService.this, lastThread+":", Toast.LENGTH_SHORT).show(); NotificationCompat.Builder builder = new NotificationCompat.Builder(getApplicationContext()) .setSmallIcon(R.drawable.ic_launcher_background) .setContentTitle("قام مستخدم بالتعليق على منشورك") .setContentText("قام مستخدم بإضافة تعليق جديد!") .setPriority(NotificationCompat.PRIORITY_DEFAULT); } } catch (JSONException e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { error.printStackTrace(); } }); RequestQueue requestQueue = Volley.newRequestQueue(this); requestQueue.add(request); Handler handler=new Handler(); handler.postDelayed(new Runnable(){ @Override public void run() { run_loop(); } },20000); }
    1 نقطة
  18. مرحباً عبدالرحمن : الذي يؤثر عليك هو تقييمك للمشاريع التي تم تنفيذها فإذا كانت تقييمك سيئ فسيأخذ صاحب المشروع الذي تقدم له فكرة سيئة عنك وبالتالي يجب أن تفكر جيداً قبل أن تأخذ أي مشروع.
    1 نقطة
  19. هنا كما يظهر يوجد لديك أخطاء 32.416 2432-2432/com.example.myapplication W/System.err: org.json.JSONException: No value for idtopic 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at org.json.JSONObject.get(JSONObject.java:354) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at org.json.JSONObject.getString(JSONObject.java:510) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at com.example.myapplication.MyService$1.onResponse(MyService.java:48) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at com.example.myapplication.MyService$1.onResponse(MyService.java:41) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at com.android.volley.toolbox.JsonRequest.deliverResponse(JsonRequest.java:83) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:106) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at android.os.Handler.handleCallback(Handler.java:615) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at android.os.Handler.dispatchMessage(Handler.java:92) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at android.os.Looper.loop(Looper.java:137) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at android.app.ActivityThread.main(ActivityThread.java:4745) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at java.lang.reflect.Method.invokeNative(Native Method) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at java.lang.reflect.Method.invoke(Method.java:511) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at dalvik.system.NativeStart.main(Native Method) الخطأ الأساسي هنا No value for idtopic أي لا يوجد قيمة ل idtopic هل ال API الخاص بك يحوي تلك القيمة ,وأيضا هنا لديك خطأ for (int i = 0; i < jsonArray.length(); i++) { JSONObject hit = jsonArray.getJSONObject(0); أنت تقوم بتمرير 0 للميثود getJSONObject وهذا خطأ يجب أن تمرر متغير ال i أي هكذا for (int i = 0; i < jsonArray.length(); i++) { JSONObject hit = jsonArray.getJSONObject(i); حتي يتم الوصول إلى البيانات المرجعة من اللوب ,إن لم يعمل بعد ذلك أعلمني سأقوم ببناء التطبيق وال API لدي وأحللك المشكلة
    1 نقطة
  20. @Mohamd Imran اهلا بك اخي بنسبة لملف mainfest لقد قمت باضافة السيرفر فيه كالتالي <service android:name=".MyService" android:enabled="true" android:exported="false"></service> بنسبة الى نوع لجهاز قمت بتجربة على جهازين الاول جهاوي حقيقي نوت 5 اصدار الاندرويد 7.0 ايضا قمت بتجربته على جيني موشن اندرويد 4.1.1 والنتيجة واحده فقط مسج تسجيل الخروج ومسج عمل السيرفر الذي يظهر هذا مجموعة الاخطار التي تظهر في شريط logcat 05-29 13:10:32.164 2432-2437/com.example.myapplication D/dalvikvm: GC_CONCURRENT freed 420K, 5% free 12218K/12807K, paused 13ms+12ms, total 48ms 05-29 13:10:32.192 2432-2497/com.example.myapplication D/dalvikvm: GC_FOR_ALLOC freed 402K, 5% free 12196K/12807K, paused 16ms, total 16ms 05-29 13:10:32.220 2432-2497/com.example.myapplication D/dalvikvm: GC_FOR_ALLOC freed 363K, 5% free 12214K/12807K, paused 10ms, total 10ms 05-29 13:10:32.260 2432-2437/com.example.myapplication D/dalvikvm: GC_CONCURRENT freed 357K, 5% free 12241K/12807K, paused 11ms+3ms, total 21ms 05-29 13:10:32.300 2432-2437/com.example.myapplication D/dalvikvm: GC_CONCURRENT freed 407K, 5% free 12262K/12871K, paused 12ms+1ms, total 23ms 05-29 13:10:32.348 2432-2437/com.example.myapplication D/dalvikvm: GC_CONCURRENT freed 401K, 5% free 12290K/12871K, paused 11ms+11ms, total 34ms 05-29 13:10:32.392 2432-2437/com.example.myapplication D/dalvikvm: GC_CONCURRENT freed 429K, 4% free 12390K/12871K, paused 12ms+1ms, total 27ms 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: org.json.JSONException: No value for idtopic 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at org.json.JSONObject.get(JSONObject.java:354) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at org.json.JSONObject.getString(JSONObject.java:510) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at com.example.myapplication.MyService$1.onResponse(MyService.java:48) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at com.example.myapplication.MyService$1.onResponse(MyService.java:41) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at com.android.volley.toolbox.JsonRequest.deliverResponse(JsonRequest.java:83) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:106) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at android.os.Handler.handleCallback(Handler.java:615) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at android.os.Handler.dispatchMessage(Handler.java:92) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at android.os.Looper.loop(Looper.java:137) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at android.app.ActivityThread.main(ActivityThread.java:4745) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at java.lang.reflect.Method.invokeNative(Native Method) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at java.lang.reflect.Method.invoke(Method.java:511) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 05-29 13:10:32.416 2432-2432/com.example.myapplication W/System.err: at dalvik.system.NativeStart.main(Native Method) --------- beginning of /dev/log/system @Mohamd Imran
    1 نقطة
  21. أهلا بك @مروان مروان3 أتوقع أنك لم تقم بتعريف ال Background service في ملف ال mainfest , تأكد من ذلك ,وأيضاً إن كنت تقوم بتجربة التطبيق على جهاز ذو نظام أندرويد ٨,٩ سيظهر لك في شريط الإشعارات عند غلق التطبيق سيظهر لك أن هناك عملية تجري في الخلفية تأكد من ذلك ,وأيضاً إذهب إلى التطبيق من خلال إعدادات هاتفك وتأكد من إنك أعطيت الصلاحيات للسماح للتطبيق بالعمل في الخلفية ,وأيضا تفقد إن كان هناك أخطاء تظهر في شريط ال Logcat في الأندرويد ستديو وأنت موصل الهاتف بالجهاز
    1 نقطة
  22. @Mohamd Imran اهلا بك اخي الكريم شكرا على ردك في بداية الامر لقد قمت بعمل كلاس سيرفر حسب تعليماتك انته والاخ @عماره ميلوديله الشكر الجزيل ايضا وقمت بعمل كلاس فولي في كلاس السيرفر وقمت بعمل توقيت لكلاس السيرفر ايضا Handler handler=new Handler(); handler.postDelayed(new Runnable(){ @Override public void run() { run_loop(); } },20000); ايضا قمت بادرج كلاس السيرفر كالتالي في الصفحة main @Override public void onBackPressed() { Intent sr =new Intent(MainActivity.this,MyService.class); startService(sr); Toast.makeText(this, "Exit", Toast.LENGTH_SHORT).show(); finish(); super.onBackPressed(); } المفترض اني لما اعمل خروج من التطبيق ب الشكل التالي احصل على اشعار توست مسج السيرفر شغال هذا المساج اشاهده ولكن من بعدها لا يحدث شي الفولي لا تحضر الي اخر ايدي موجود في جدول المواضيع انا حاليا احاول احصل على اشعار باخر المواضيع حتى بعدها استطيع التعديل على الكود وعمله بشكل مختلف ولكن لا يزال لا يعمل هذا كلاس السيرفر كامل مرفق لكم public class MyService extends Service { public MyService() { } @Override public void onCreate(){ super.onCreate(); } @Override public int onStartCommand(Intent intent,int flags,int startId){ Toast.makeText(this, "Start myServis", Toast.LENGTH_LONG).show(); run_loop(); return START_STICKY; } public void run_loop(){ final RequestQueue mRequestQueue; mRequestQueue = Volley.newRequestQueue(this); String url = "http://0000000/testnet/android_register_login/ShowAllData.php"; JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { try { JSONArray jsonArray = response.getJSONArray("data"); for (int i = 0; i < jsonArray.length(); i++) { JSONObject hit = jsonArray.getJSONObject(0); String idtopic =response .getString("idtopic"); int lastThread=Integer.parseInt(String.valueOf(idtopic)); JSONObject jsonObject = null; Toast.makeText(MyService.this, lastThread+":", Toast.LENGTH_LONG).show(); } } catch (JSONException e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { error.printStackTrace(); } }); mRequestQueue.add(request); Handler handler=new Handler(); handler.postDelayed(new Runnable(){ @Override public void run() { run_loop(); } },20000); } @Override public void onDestroy(){ Toast.makeText(this, "Stopmyservci", Toast.LENGTH_LONG).show(); super.onDestroy(); } @Override public IBinder onBind(Intent intent) { // TODO: Return the communication channel to the service. throw new UnsupportedOperationException("Not yet implemented"); } } مع العلم ان موقع الصفر هو IP كمبيوتري وهذا صفحة php وهيا شغاله 100%100 قمت بتجربتها من خلال المتصفح ومن خلال رابط الفولي بعد الضغط عليه <?php include ("connt.php"); $sql="SELECT * FROM `topic` ORDER BY idtopic DESC"; $result=mysqli_query($con,$sql); $data=array(); while($row=mysqli_fetch_assoc($result)){ //$data[]=$row; $data["data"][]=$row; } echo json_encode($data); ?> وهذا صورة من جدول البيانات الذي احاول الحصول على العدد منه او العمل عليه https://gofile.io/d/n2uDuX لا اعلم ما هيا المشكله بتحديد في الامر اخي @Mohamd Imran بعد ان احصل على العدد في توست مسج بقدر استخدم كود التنبيهات الذي قمت بمشاركته معي سابقا مرفق لكم المشروع كامل ايضا لو امكنكم الاتطلاع عليه Allproject.rar
    1 نقطة
  23. مرحبا اخواني الكرام اعذروني على ازعاجكم ولكني مطور تطبيقات جديد واحتاج المساعده بعض الاوقات.. لدي استفسار بخصوص الاشعارات لني بحثة كثير في الانترنت بس لم اجد اجابه واضحه او مثل ما احتاج بضبط .. انا اطور تطبيق فيه نظام المواضيع + تعليقات الاعضاء طبعا كل موضوع يمتلك تعليقات خاصة به يعتمد الامر على ربط الموضوع ب التعليقات من خلال ID المرضوع هذا الاشيا مفهومه لدي الداله الشرطيه وكذا وانا استخدم قواعد بيانات نوع Mysql وملفات php واستخدام للاتصال بها مكتبة Volley قاعدة بياناتي تحتوى على جدول المواضيع + جدول التعليقات +جدول المستخدمون طيب سوالي الحين لو فيه عضو ونقول هو العضو B وضع رد على موضوع العضو A مثلا كيف اقدر ارسل تنبيه للعضو A بوجود تعليق جديد على موضوعه ؟ كيف اقوم بعمل ذلك من خلال mysql و Volley ياليت لو فيه كود نموذج بسيط سهل فهمه شكرا للجميع
    1 نقطة
  24. السلام عليكم ورحمة الله وبركاته بعد إذنكم يا شباب محتاج أعمل multi level drawer زي اللي معمول هنا في الموقع هل فيه حاجة جاهزة أو plugin ولا هضطر أعمله من الاول.
    1 نقطة
  25. وعليكم السلام أخي @Mohammed Saber يمكنك عمل ذلك من خلال css و htmlهكذا <!DOCTYPE html> <html lang="ar" charset="utf-8"> <head> <link href="style.css" rel="stylesheet" /> <title>multi level drawer</title> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> </head> <body> <header> <form action="javascript:"> <input id="left-menu" type="checkbox"> <input id="left-menu-reset" type="reset"> <nav class="left-navigation"> <main> <label class="menu-toggle" for="left-menu"><span>&nbsp;</span></label> <label class="menu-close" for="left-menu-reset"><span>&nbsp;</span></label> <menu> <menuitem> <span class="heading">القائمة</span> </menuitem> <menuitem> <label for="left-menu-item-1">عنصر 1</label> <input id="left-menu-item-1" type="checkbox"> <nav> <main> <label class="menu-toggle" for="left-menu-item-1"><span>&nbsp;</span></label> <menu> <menuitem> <span class="heading">عنصر 1</span> </menuitem> <menuitem> <label for="left-menu-item-1-1">عنصر 1.1</label> <input id="left-menu-item-1-1" type="checkbox"> <nav> <main> <label class="menu-toggle" for="left-menu-item-1-1"><span>&nbsp;</span></label> <menu> <menuitem> <span class="heading">عنصر 1.1</span> </menuitem> <menuitem> <span>عنصر 1.1.1</span> </menuitem> <menuitem> <span>عنصر 1.1.2</span> </menuitem> <menuitem> <span>عنصر 1.1.3</span> </menuitem> </menu> </main> </nav> </menuitem> <menuitem> <label for="left-menu-item-1-2">عنصر 1.2</label> <input id="left-menu-item-1-2" type="checkbox"> <nav> <main> <label class="menu-toggle" for="left-menu-item-1-2"><span>&nbsp;</span></label> <menu> <menuitem> <span class="heading">عنصر 1.2</span> </menuitem> <menuitem> <span>عنصر 1.2.1</span> </menuitem> <menuitem> <span>عنصر 1.2.2</span> </menuitem> <menuitem> <span>عنصر 1.2.3</span> </menuitem> </menu> </main> </nav> </menuitem> <menuitem> <label for="left-menu-item-1-3">عنصر 1.3</label> <input id="left-menu-item-1-3" type="checkbox"> <nav> <main> <label class="menu-toggle" for="left-menu-item-1-3"><span>&nbsp;</span></label> <menu> <menuitem> <span class="heading">عنصر 1.3</span> </menuitem> <menuitem> <span>عنصر 1.3.1</span> </menuitem> <menuitem> <span>عنصر 1.3.2</span> </menuitem> <menuitem> <span>عنصر 1.3.3</span> </menuitem> </menu> </main> </nav> </menuitem> </menu> </main> </nav> </menuitem> </menu> </main> </nav> </form> <svg height="100%" width="100%" xmlns="http://www.w3.org/2000/svg"> <text dx="45%" dy="60%">&larr; الهيدر &rarr;</text> </svg> </header> <main> <div class="introduction"> <center> <h1>قائمة متعددة </h1> <p>قائمة متعددة بإستخدام css فقط</p> </center> </div> </main> </body> </html> وملف الستايل أرفقته لك ,لأنه كبير ,وسيعمل بشكل جميل لكن لا تنسى الإشارة إلى ملف الستايل في صفحة ال html هنا <link href="style.css" rel="stylesheet" /> style.css
    1 نقطة
  26. السلام عليكم انا عندي مشكلة انو وقت اشتركت ب الدورة عملت خطء و شتركت ب حساب غير حسابي الشخصي حاليا لا اواجه مشاكل لاكن هل سوف تكون الشهادة مرتبطة ب الحساب او هل يمكنني تغيير الحساب او الايميل
    1 نقطة
  27. السلام عليكم أخي ,حسب ما فهمت إنك تريد إرسال إشعار من التطبيق عند قيام المستخدم بوضع تعليق جديد على بوست معين ,يمكنك ذلك من خلال إرجاع عدد التعليقات الحالي والتحقق إن كان هناك زيادة في العدد إن حدث زيادة نقوم بتفحص التعليقات من أخر عدد للتعليقات ثم عمل إشعار بتلك التعليقات من الAPI او السيرفر الخاص بك,ولعمل إشعار يمكنك إستخدام الكود التالي مع تعديله بما يتناسب مع تطبيقك (جافا) NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID) .setSmallIcon(R.drawable.notification_icon) .setContentTitle("قام مستخدم بالتعليق على منشورك") .setContentText("قام مستخدم بإضافة تعليق جديد!") .setPriority(NotificationCompat.PRIORITY_DEFAULT); وأيضا لإرسال إشعار حتى عند إغلاق التطبيق ,يتم إستخدم Background service وهي تعمل بالخلفية حتى عند إغلاق التطبيق تستمر بالعمل وتقوم هنا بالتفحص للإشعارات الجديدة
    1 نقطة
  28. مرحبا يمكن عمل البرنامج بلغة جافا بهذا الشكل public class Main { public static void main(String[] args) { // هنا قمنا بإنشاء مصفوفة و ملأناها برواتب الموظفين int[] salaries = { 2000,3500,2200,4100,2000,1500,2600,3600,3900,4000 }; // هنا قمنا بالزيادة على الرواتب حسب الشروط for (int i = 0; i < salaries.length; i++){ if (salaries[i] < 2000) salaries[i] += 200; else if (salaries[i] >= 2000 && salaries[i] < 3000) salaries[i] += 150; else if (salaries[i] >= 3000 && salaries[i] < 4000) salaries[i] += 100; else salaries[i] += 50; } // هذا من أجل عرض الرواتب بعد الزيادة for (int salary: salaries) System.out.println(salary); } } بإمكانك تجربة البرنامج من هنا بالتوفيق
    1 نقطة
×
×
  • أضف...