لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 05/29/20 في كل الموقع
-
1 نقطة
-
1 نقطة
-
مشكلة محرر الاكواد عندي ما يقبل الارقام بالعربي رغم انه يقبل الكلام بالعربي لكن ما يقبل الارقام ماني عارف ايش المشكلة غيرت محرر الاكواد، نزلت اللغة الهندية كمان ما مشي الحال ياليت تفيدوني وشكرا..1 نقطة
-
1 نقطة
-
1 نقطة
-
انا اكتب html بمحرر الاكواد atom وجربت visual studio والمشكلة عندي في الارقام العربية لما اكتبها تظهر عندي في المتصفح باللغة الانجليزية رغم ان الحروف بالعربي تظهر ومافيها اي مشكلة المشكلة عندي بس بالارقام1 نقطة
-
@Mohamd Imran لقد فهمتك ي غالي ربي يعطيك الف صحه وعافيه يا رب والعذر والسموحه منك على الاطاله كثير ربي يقدرني وارد لك هذا الدين في يوم1 نقطة
-
ولكن انا كنت اقصد هل دائما الكود ينكتب في كلاس السيرفر او ممكن كتابته في الكلاسات الثانيه اي في موقع الذي ارغب باستخدمه فيه؟اذا ممكن كيف رح نربطه في كلاسات الثانيه من اجل ان يعمل ؟ @Mohamd Imran1 نقطة
-
هي فعلياً تعمل دائما في الخلفية (تختلف في بعض إصدارات الأندرويد),أي لا تحتاج إلى تشغيلها كل مدة , لكن أفضل إداء أو أسلوب لعمل هكذا نوع من التطبيقات ,أن تقوم بعمل قاعدة بيانات محلية sqllite db وتخزين البيانات القادمة من ال API في تلك القاعدة حتى عند عدم توفر إتصال بالإنترنت ينطلق الإشعار بناء على البيانات المحملة مسبقاً من ال API ومن هنا تستطيع عمل كويري لقاعدة البيانات المحلية (أو من خلال عمل API لتلقي الطلبات وإعادة إرسال التعليقات بناء على Id مستخدم معين) لطلب التعليقات الجديدة لمستخدم معين1 نقطة
-
@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 نقطة
-
اه أعتذر لم أقم بتعريف ال notification manger في الكود فقط أضف التالي فوق جملة الشرط أي هكذا NotificationManager notifManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); if (notifManager == null) { notifManager = (NotificationManager)getSystemService(this.NOTIFICATION_SERVICE); } وبخصوص هذا من الأندرويد ستديو هذا تحذير للإصدارات القديمة لكن لا عليك منه1 نقطة
-
@Mohamd Imran قمت بعمل الكود كل شي تمام فقط notifManager Cannot resolve symbol 'notifManager' وايضا NotificationCompat.Builder 'Builder(android.content.Context)' is deprecated مرفق لك صور لتوضيح في الرابط التالي https://gofile.io/d/QMdjhr1 نقطة
-
صحيح ,لعمل إشعار لجميع إصدرات أندرويد قمت بعمل الكود التالي لك ,سيتفحص إصدار الأندرويد لديك وسيتم إطلاق الإشعار بالطريقة المناسبة للإصدار الجديد 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 نقطة
-
@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 نقطة
-
السلام عليكم لدي سؤال انا سجلت ب مستقل منذ زمن و عندها لم اكن اعرف كيف يعمل كنت اجرب و الان عدت عليه فيوجد طلب مستبعد هل يؤثر على وافقة العميل او نظرته لي1 نقطة
-
صحيح ,وهو هكذا سيأتي لك بجميع السجلات التي يتم إرجاعها من ال 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 نقطة
-
@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 نقطة
-
1 نقطة
-
مرحباً عبدالرحمن : الذي يؤثر عليك هو تقييمك للمشاريع التي تم تنفيذها فإذا كانت تقييمك سيئ فسيأخذ صاحب المشروع الذي تقدم له فكرة سيئة عنك وبالتالي يجب أن تفكر جيداً قبل أن تأخذ أي مشروع.1 نقطة
-
هنا كما يظهر يوجد لديك أخطاء 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 نقطة
-
@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 Imran1 نقطة
-
أهلا بك @مروان مروان3 أتوقع أنك لم تقم بتعريف ال Background service في ملف ال mainfest , تأكد من ذلك ,وأيضاً إن كنت تقوم بتجربة التطبيق على جهاز ذو نظام أندرويد ٨,٩ سيظهر لك في شريط الإشعارات عند غلق التطبيق سيظهر لك أن هناك عملية تجري في الخلفية تأكد من ذلك ,وأيضاً إذهب إلى التطبيق من خلال إعدادات هاتفك وتأكد من إنك أعطيت الصلاحيات للسماح للتطبيق بالعمل في الخلفية ,وأيضا تفقد إن كان هناك أخطاء تظهر في شريط ال Logcat في الأندرويد ستديو وأنت موصل الهاتف بالجهاز1 نقطة
-
@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.rar1 نقطة
-
مرحبا اخواني الكرام اعذروني على ازعاجكم ولكني مطور تطبيقات جديد واحتاج المساعده بعض الاوقات.. لدي استفسار بخصوص الاشعارات لني بحثة كثير في الانترنت بس لم اجد اجابه واضحه او مثل ما احتاج بضبط .. انا اطور تطبيق فيه نظام المواضيع + تعليقات الاعضاء طبعا كل موضوع يمتلك تعليقات خاصة به يعتمد الامر على ربط الموضوع ب التعليقات من خلال ID المرضوع هذا الاشيا مفهومه لدي الداله الشرطيه وكذا وانا استخدم قواعد بيانات نوع Mysql وملفات php واستخدام للاتصال بها مكتبة Volley قاعدة بياناتي تحتوى على جدول المواضيع + جدول التعليقات +جدول المستخدمون طيب سوالي الحين لو فيه عضو ونقول هو العضو B وضع رد على موضوع العضو A مثلا كيف اقدر ارسل تنبيه للعضو A بوجود تعليق جديد على موضوعه ؟ كيف اقوم بعمل ذلك من خلال mysql و Volley ياليت لو فيه كود نموذج بسيط سهل فهمه شكرا للجميع1 نقطة
-
1 نقطة
-
وعليكم السلام أخي @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> </span></label> <label class="menu-close" for="left-menu-reset"><span> </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> </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> </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> </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> </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%">← الهيدر →</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.css1 نقطة
-
السلام عليكم انا عندي مشكلة انو وقت اشتركت ب الدورة عملت خطء و شتركت ب حساب غير حسابي الشخصي حاليا لا اواجه مشاكل لاكن هل سوف تكون الشهادة مرتبطة ب الحساب او هل يمكنني تغيير الحساب او الايميل1 نقطة
-
السلام عليكم أخي ,حسب ما فهمت إنك تريد إرسال إشعار من التطبيق عند قيام المستخدم بوضع تعليق جديد على بوست معين ,يمكنك ذلك من خلال إرجاع عدد التعليقات الحالي والتحقق إن كان هناك زيادة في العدد إن حدث زيادة نقوم بتفحص التعليقات من أخر عدد للتعليقات ثم عمل إشعار بتلك التعليقات من الAPI او السيرفر الخاص بك,ولعمل إشعار يمكنك إستخدام الكود التالي مع تعديله بما يتناسب مع تطبيقك (جافا) NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID) .setSmallIcon(R.drawable.notification_icon) .setContentTitle("قام مستخدم بالتعليق على منشورك") .setContentText("قام مستخدم بإضافة تعليق جديد!") .setPriority(NotificationCompat.PRIORITY_DEFAULT); وأيضا لإرسال إشعار حتى عند إغلاق التطبيق ,يتم إستخدم Background service وهي تعمل بالخلفية حتى عند إغلاق التطبيق تستمر بالعمل وتقوم هنا بالتفحص للإشعارات الجديدة1 نقطة
-
المقالات التي تتناول موضوع العمل عن بعد كأسلوب حياة، تميل في العادة التركيز على الجانب الإيجابي منها، خصوصًا المقدرة على السفر والاستمتاع بقضاء أوقات ممتعة، لكن لن يتم التطرق لهذا الجانب في المقال. عندما كنتُ في عمر 23، يقول كاتب المقال، حصل تغيّر جذري في حياتي، اضطررت لبيع جميع متعلقاتي والانتقال من الدنمارك إلى تايوان، بدأت عيش حلم كل مسافر بالانتقال من بلد لآخر دون أي صعوبة، لكن لم أدرك أنها ستكون من أتعس اللحظات في حياتي. الأشخاص الذين يعملون عن بعد ويسافرون بإستمرار لا يكتبون بالعادة عن الشعور بالوحدة في حياتهم، لكنهم بالتأكيد اضطروا للتعايش معه، لأن السفر لفترات طويلة تدفع الشخص لفقدان جميع الروابط الاجتماعية في حياته، أو الشعور بالإنتماء و عيش روتين ثابت وصحي بشكل يومي. ستكتشف أن الإلتقاء بأشخاص جدد سهل للغاية، لكن بناء علاقات متينة وحقيقة صعب للغاية، بالنسبة لي تمكنت من العيش في تايوان لما يقارب العام قبل الرجوع إلى أوروبا، وفي هذه الفترة تعلمت العديد من الدروس الصعبة في الوقت الذي بدأت اشعر بخليط من الكآبة، القلق، الأرق، والوحدة، ولم أتمكن من التعافي من هذه التجربة إلا بعد سنوات لاحقة. الاختيار بين السفر أو الإستقرار كأسلوب حياة يوجد العديد من الأشخاص الذين يستمتعون بأسلوب الحياة القائم على السفر والعمل عن بعد، لكن العديد منهم لا يُظهرون الوجه الآخر لحياتهم على مواقع التواصل الإجتماعي، لأننا بطبيعتنا البشرية نحتاج أصدقاء حقيقيين وعائلة بقربنا، وبحاجة لمكان نشعر بالإنتماء إليه. كما تطرقت العديد من الدراسات على أن الأشخاص الذين يمتلكون روابط اجتماعية قوية، يعيشون حياة أطول وأكثر صحة وسعادة، بغض النظر عن الحملات الإعلانية لوكالات السفر التي تعلن بأنه يمكنك الانتماء في كل مكان، لأن بناء الروابط والمجتمعات يحتاج إلى الكثير من الوقت. أعمل في شركة Doist وهي من أول الشركات القائمة في أساسها على العمل عن بعد، بمعنى أن موظفيها يستطيعون العمل من أي مكان في العالم بشرط التمكن من الاتصال بالانترنت طيلة الوقت، لكن أكثر من 95 من موظفي الشركة يعيشون أسلوب حياة مستقر دون الاضطرار للسفر المستمر، يميل أغلب الأشخاص لتأسيس حياتهم في أماكن مستقرة قريبين من عائلاتهم وأصدقائهم، و الجميل في أسلوب العمل عن بعد هو المقدرة في اختيار المكان الذي يناسبك. لا ينبغي للعاملين عن بعد الشعور بضرورة السفر لعيش حياة شيقة في محاولة للشعور بالرضى عن حياتهم، فلا بأس من تفضيل الاستقرار بقرب العائلة على حياة السفر المستمر للحفاظ على السلامة النفسية. معيقات العمل من المنزل البديل للسفر والعمل عن بعد هو العمل من المنزل، لكن قد يكون هذا بحد ذاته دافعا للعزلة الاجتماعية. لم يسبق لي العمل في مكاتب حقيقية، فقد انشأت أول شركة لي بطريقة تعتمد في العمل عن بعد، وفي الغالب لم أكن أستطيع الفصل بين حياتي الشخصية أو المهنية. منذ بداية حياتي الجامعية كنت اعمل من السكن الجامعي، بوجود آخرين معي، وكان التفاعل الاجتماعي أمر لا يمكن تجنبه، لكن استطعت بناء نوع من التوازن في بين أداء الواجبات الجامعية والمشاريع المهنية، بالإضافة لتخصيص بعض الوقت مع أصدقاء الدراسة. بدأت مع مرور الوقت بكسب المزيد من المال يمكنني من الاستقلال في السكن، و كمبرمج منطوي على نفسه فأنني أقدر قيمة الصمت للتركيز على العمل، واعتقدت أن الاستقلال في السكن سيحسن من انتاجية العمل، لكن كنت مخطئًا في اعتقادي. قضيت أغلب الأيام فقط في العمل، وبالرغم من إدراكي لأهمية وضع حدود ما بين الحياة المهنية أو الشخصية، لكنني لم أستطع الفصل بينهما، والذي أدى اكتسابي عادات سيئة بسبب العزلة. الإستمرار في حالة العزلة بسبب العمل ضاعف من الضغط النفسي وظهور مشاكل الأرق والإكتئاب مما أثّر على انتاجية العمل، لذا حاولت خلق روتين، ووضع حدود ما بين العمل والحياة الشخصية، وتنظيم ساعات النوم وأخذ المزيد من فترات الاستراحة خلال اليوم، لكن لم أستطع من تحويل هذه الأفكار لعادات ثابتة. أدركت حينها أنه يتحتم عليّ القيام بتغييرات جذرية للعودة إلى حالة عقلية سليمة، فبدأت تغيير الأماكن التي أعمل فيها بالعادة، حتى وإن تحتم عليّ دفع المزيد من المال، لكنه عاد بالنفع على نتائج العمل، كل ما احتجته هو الفصل المكاني ما بين حياتي المهنية والشخصية، وتحديد أوقات زمنية واضحة لبدء وانتهاء العمل. الخروج من المنزل للعمل ساعد على عودة حياتي الاجتماعية، وصحتي العقلية، وبالتالي ساعد على زيادة مستوى الطاقة والإنتاجية وأصبح من السهل التعامل مع الضغوط. يجب البحث عن الأشياء التي تساعد في التحول إلى حياة صحية وأكثر إنتاجية، لأن العمل من المنزل قد يدفع للسقوط في عدد من العادات السيئة التي تؤدي لتراجع الإنتاجية. لا يوجد قاعدة ثابتة لتنظيم بدء وانتهاء العمل، كما لا يوجد زملاء عمل للمساعدة في الخروج من لحظات الضغط وعدم الإنتاجية، ومن الصعب الاكتفاء بالقليل من الانجازات خلال اليوم، مما يؤدي للانخراط في ساعات إضافية من العمل و التي سترهقك خلال الأيام اللاحقة. تعامل الشركات مع المشاكل الصحية لموظفيها تجربتي في العمل لا تختلف عن جميع الموظفين الذين يعملون عن بعد، ويُعد اكتساب المرونة للعمل في أي مكان تريد العمل مهمًا لتحقيق التوازن ما بين الحياة الشخصية والمهنية، لكن بعض الأحيان قد تسبب هذه المرونة بنتائج معاكسة تمامًا، لأن العمل عن بُعد يُركز على النتائج أكثر من آلية إنجاز العمل، وبما أنه يوجد حس بالمسؤولية لدى العاملين عن بعد، فإنهم يميلون إلى زيادة ساعات العمل والوصول إلى مرحلة الإرهاق وعدم الإنتاجية، ومن ثم يسقطون مرة أخرى في عادات سيئة من الصعب الخروج منها. النقطة الجوهرية هنا أن ليس على المستقلين أو العاملين عن بعد السفر لإثراء تجاربهم المهنية، بإمكانهم الاستقرار وتوفير المال لاستئجار مكتب خارج حدود المنزل لإنجاز العمل، وهذا ما يُقصد بالمرونة في العمل عن بعد وهو اكتساب الوعي لتنظيم العمل والتخلص من العادات السيئة قبل التسبب في المزيد من الضرر، ينبغي أن تبحث باستمرار عن أفضل الظروف التي تساعد في إبقاء نظام صحي في الحياة الشخصية والمهنية. شاركت عام 2016 في مخيم تدريبي للقيادة خاص بالمدراء التنفيذيين، وساعدتني هذه التجربة على استيعاب الصراعات الداخلية التي يعاني منها الجميع بما فيهم أكثر الأشخاص نجاحًا في حياتهم المهنية، من المهم معرفة أنه من الطبيعي حصول العديد من المشاكل التي يجب التعامل معها وحلها، لكن لا ينبغي تعريض أنفسنا للقلق والإكتئاب وكتمان هذه المشاعر أو عدم طلب المساعدة من المختصين. اقترحت بعض الدراسات أننا كبشر لا يمكننا العمل في العزلة، إمكانية الارتباط بشريك الحياة تزداد سبع أضعاف في بيئة العمل، بالإضافة للعديد الذين يكونون أكثر إنتاجية عند امتلاك صديق مقرب في العمل، و تزيد فرصة بقائهم في وظائفهم لفترات أطول ويسجلون رضا أكبر عن وظائفهم. كما يوجد دراسة حديثة ركزت بشكل خاص على العمل عن بعد، أكثر من نصف الخاضعين للتجربة قرروا عدم الإستمرار في العمل من المنزل طيلة الوقت، بغض النظر أنهم كانوا أكثر انتاجية في العمل خلال اليوم، مع الاخذ فترات استراحة أقل، كما كانوا أقل عرضة للاستقالة بنسبة 50% بالمقارنة مع زملائهم الذين عملوا من المكتب، والنتيجة أنهم قرروا العودة للعمل في المكتب لأنهم شعروا بالعزلة التامة أثناء عملهم في البيت. موضوع العمل عن بعد يطرح العديد من التحديات بخصوص الصحة العقلية، لأنه عندما لا تتمكن من رؤية زميل العمل بشكل يومي يصبح من السهل افتراض أن جميع الأمور تسير بسلاسة، بينما في الواقع يحدث العكس، ومن المهم جدا لنا كشركات تعمل عن بعد الإقرار بحدوث الآثار السلبية للعمل عن بعد، وبذل المزيد من الجهود لمساعدة الموظفين في تعزيز جميع الجوانب في حياتهم المهنية والشخصية. ربما ما زلنا في المراحل الأولى لإكتشاف الآثار الجانبية للعمل عن بعد على صحتنا العقلية، لكن من المهم العمل على تطوير آليات العمل لتصبح أكثر كفاءة على المدى الطويل. يوجد بعض الأفكار التي من الممكن تطبيقها كمحاولة للحفاظ على الصحة العقلية: الاعتراف بشكل صريح بإمكانية حدوث مشاكل صحية يجب التعامل معها بجدية بخصوص العمل عن بعد، من الطبيعي الشعور بالضغط والإكتئاب، ويُفضل طلب المساعدة من متخصصين. خلق بيئة عمل تشجع على نقاشات مفتوحة بخصوص مواضيع يجد الآخرين صعوبة في مناقشتها، ويفضل أن تكون النقاشات على جميع المستويات سواء بشكل شخصي أو نقاشات جماعية. دعم الأشخاص الذين بالفعل يعانون من مظاهر القلق والإكتئاب، سواء الدعم من الزملاء أو التنفيذيين وممثلي الشركة. كما يمكن الإستفادة من بعض الأفكار لتقديم مساعدات ملموسة على أرض الواقع ومنها: منح إجازات مدفوعة الأجر، فالابتعاد الكامل عن العمل يساعد على التخلص من الضغوط ورفع المعنويات. مساعدتهم على الإستفادة من الإجازات المرضية عند حاجتهم إليها. زيادة التجمعات الترفيهية مع زملاء العمل. نشر المزيد من المحتوى الذي يساعد على نشر الوعي والطمأنينة بين الموظفين. بالمحصلة تستطيع جميع الشركات مساعدة موظفيها على الإسترخاء، لأن الشعور بالرضا هدف في حد ذاته، وكما أظهر الباحثون العديد من المرات أن الموظفين الذين يشعرون بالرضى ينعكس ذلك على مستوى أدائهم وبالتالي مستوى شركاتهم. ايجاد التوازن بين الحياة الشخصية والمهنية لا يتعلق بتفضيل صحتك العقلية على حساب العمل، وإنما الإقرار أنه على المدى البعيد ستكون جميع الجوانب في حياتك أفضل إذا اهتممت بصحتك العقلية بشكل دائم. كشركات تعمل عن بعد، ملتزمين لبناء ثقافة تساعد الناس على مواجهة التحديات المحتمل حدوثها للعمل عن بعد، ومساعدتهم في تحسين جميع جوانب حياتهم. ترجمة-وبتصرف- للمقال What Most Remote Companies Don’t Tell You About Remote Work للكاتب Amir Salihefendic1 نقطة
-
مرحبا يمكن عمل البرنامج بلغة جافا بهذا الشكل 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 نقطة