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

Flutter Dev

الأعضاء
  • المساهمات

    787
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    2

كل منشورات العضو Flutter Dev

  1. ولكن انا كنت اقصد هل دائما الكود ينكتب في كلاس السيرفر او ممكن كتابته في الكلاسات الثانيه اي في موقع الذي ارغب باستخدمه فيه؟اذا ممكن كيف رح نربطه في كلاسات الثانيه من اجل ان يعمل ؟ @Mohamd Imran
  2. @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 ايضا توجد مشكلة التكرار هو شغال هو الوقت هذا مافيها مشكله المشكله يعطيني اخر رقم طول الوقت يعني يكرر العملية بدون توقق المتفرض اذا كان الرقم ك السابق لا يرسل لي اشعارات لني قد سبق وقرارت المووضوع
  3. @Mohamd Imran قمت بعمل الكود كل شي تمام فقط notifManager Cannot resolve symbol 'notifManager' وايضا NotificationCompat.Builder 'Builder(android.content.Context)' is deprecated مرفق لك صور لتوضيح في الرابط التالي https://gofile.io/d/QMdjhr
  4. @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 كامل وهو شغال ايضا تمام ي غالي بس باقي مشكلة ظهور التنبيه بدل التوست مسج وحسب ما فهمت الان ايضا يجب عمل قناة مع الاندويد الجديد انا جربت الكود الذي ادرجته انته ولكن لم يظهر شي لي
  5. @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); }
  6. @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
  7. @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
  8. @عماره ميلوديتابعة الشرح كامل يوجد بعض الاختلاف بين ما يفعله ومشروعي ولكن هذا ليست المشكله حسب التعليقات على المقطع الطريقة هذا تشتغل على الاصدارت الاندرويد القديمة فقط ايضا السيرفر يشتغل اثناء تشغيل التطبيق فقط يعني لو المستخدم غلق التطبيق او خرج منه ما رح يستلم الاشعارات
  9. @عماره ميلودي نعم اخوي للغة الجافا لدي سورس كود كامل ب قاعدة بيانات وملفات بي اتش بي
  10. @عماره ميلودي هلا بك عزيزي والله ي اخوي انا مطور تطبيقات ما جديد ميه ب ميه ولكن خبرتي قليله جدا ياليت اذا معك مثال على الي شرحته ترفقه الي او ارفق لك سورس كود بسيط فيه كل الاحتياجات وتضيف لي هذا الخاصيه فيه اذا ممكن
  11. مرحبا جميعا ي اخوان سبق وانا طرحت سوال مشابه ولكني حاولت اعدل عليه الان ولم اجد خيار لتعديل لذلك فتحت سوال جديد .. لدي سورس كود مربوط بقاعدة البيانات mysql و ملفات php ويتصل من خلال مكتبة volley احتاج مساعده ل اضافة نظام التنبيهات او الاشعارات فيه بنفس الطريقه المشروع الاتصال من خلال مكتبة volley وملفات php حتى افهم الامر اذا كان ذلك ممكن العمل به طبعا الفكره تكون الرد على موضوع العضو ف يذهب اشعار الى العضو الذي نشو الموضوع تنبيه لقد تم اضافة تعليق جديد لموضوعك وما شابه مثل ذلك ما احتاجه
  12. مرحبا اخواني الكرام اعذروني على ازعاجكم ولكني مطور تطبيقات جديد واحتاج المساعده بعض الاوقات.. لدي استفسار بخصوص الاشعارات لني بحثة كثير في الانترنت بس لم اجد اجابه واضحه او مثل ما احتاج بضبط .. انا اطور تطبيق فيه نظام المواضيع + تعليقات الاعضاء طبعا كل موضوع يمتلك تعليقات خاصة به يعتمد الامر على ربط الموضوع ب التعليقات من خلال ID المرضوع هذا الاشيا مفهومه لدي الداله الشرطيه وكذا وانا استخدم قواعد بيانات نوع Mysql وملفات php واستخدام للاتصال بها مكتبة Volley قاعدة بياناتي تحتوى على جدول المواضيع + جدول التعليقات +جدول المستخدمون طيب سوالي الحين لو فيه عضو ونقول هو العضو B وضع رد على موضوع العضو A مثلا كيف اقدر ارسل تنبيه للعضو A بوجود تعليق جديد على موضوعه ؟ كيف اقوم بعمل ذلك من خلال mysql و Volley ياليت لو فيه كود نموذج بسيط سهل فهمه شكرا للجميع
  13. @Mohamd Imran الكود شغال ميه ميه ربي يعطيك الف عافيه وجنات النعيم يا رب
  14. @Mohamd Imran يا غالي هل يمكن اضافة صندوق Dialog لكودك الي يتحقق من GPS? الان هو يذهب مباشرتا نحو الاعدادات بدون سوال المستخدم اذا ممكن اضافة Dialog يكون افضل
  15. @Mohamd Imran الكود شغال تمام ي غالي ربي يعطيك الف صحه وعافيه
  16. @Mohamd Imran هلا بيك ي غالي شكرا على ردك على سوالي ولكن جوابك مختلف قليلا اخي انته عملت اذونات لوكيشن هذا الاوذنات شغاله معي انا ميه ميه مشكلتي في اذونات فحص نظام GPS هذا الي فيها المشكله
  17. مرحبا اخواني الكرام اعمال على نظام خرائط وهو شغال ميه ميه ولكن توجد مشكله واجهتني بعد طلب اذونات تشفيل GPS وذهاب الى اعدادات الهاتف وتشغيل نظام GPS بطبيعة الحال اعمل رجوع الى الاكتفي من خلال زر الرجوع بعد تشغيل GPS المشكله بعد من ارجع للاكتفتي الاكتفي الاكتفي هنا لا يعمل تحديث الى نفسه بصراحه انا مطور تطبيقات جديد ولا اعلم اذا كان وصفي صحيح هاكذا ولكن الفكرة المطلوبه بعد تشغيل GPS ورجوع الى الاكتفتي المفترض احصل على قيمة Longitude and latitude ولكن هذا لا يحدث من اجل ان يحدث احتاج الرجوع الى صفحة main activity واعادة الدخول الى هذا الاكتفتي حتى اجد القيمة الكود الي شغال عليه كالتالي: public class SendMapLactiontest extends AppCompatActivity implements OnMapReadyCallback { private static final String TAG = SendMapLactiontest.class.getSimpleName(); private GoogleMap mMap; LocationManager locationManager; private CameraPosition mCameraPosition; private PlacesClient mPlacesClient; private FusedLocationProviderClient mFusedLocationProviderClient; private final LatLng mDefaultLocation = new LatLng(-33.8523341, 151.2106085); private static final int DEFAULT_ZOOM = 15; private Location mLastKnownLocation; private static final String KEY_CAMERA_POSITION = "camera_position"; private static final String KEY_LOCATION = "location"; private static final int M_MAX_ENTRIES = 5; EditText textLatitude,textLongitude,lonTextView,lonTextView1; Button button,btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (savedInstanceState != null) { mLastKnownLocation = savedInstanceState.getParcelable(KEY_LOCATION); mCameraPosition = savedInstanceState.getParcelable(KEY_CAMERA_POSITION); } setContentView(R.layout.map_send_lcation); textLatitude=findViewById(R.id.textLatitude); textLongitude=findViewById(R.id.textLongitude); lonTextView =findViewById(R.id.tap_text1); lonTextView1 =findViewById(R.id.tap_text); String apiKey = getString(R.string.google_map_api_key); Places.initialize(getApplicationContext(), apiKey); mPlacesClient = Places.createClient(this); mFusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this); SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map);mapFragment.getMapAsync(this); if(!isLocationEnabled()) { AlertDialog.Builder builder = new AlertDialog.Builder(SendMapLactiontest.this); builder.setTitle("R.string.network_not_enabled") .setMessage("R.string.open_location_settings") .setPositiveButton("R.string.yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)); } }) .setNegativeButton("R.string.cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); Intent imgListIntent = new Intent(SendMapLactiontest.this, AddNewItem.class); startActivity(imgListIntent); finish(); } }); AlertDialog alert = builder.create(); alert.show(); } } @Override protected void onSaveInstanceState(Bundle outState) { if (mMap != null) { outState.putParcelable(KEY_CAMERA_POSITION, mMap.getCameraPosition()); outState.putParcelable(KEY_LOCATION, mLastKnownLocation); super.onSaveInstanceState(outState); } } @Override public void onMapReady(GoogleMap map) { mMap = map; mMap.clear(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (ActivityCompat.checkSelfPermission (this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission (this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { requestPermissions(new String[]{ Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION }, 1); // 1 is requestCode return; } }else{ } getDeviceLocation(); mMap.setMyLocationEnabled(true); mMap.getUiSettings().setMyLocationButtonEnabled(true); } protected boolean isLocationEnabled(){ String le = Context.LOCATION_SERVICE; locationManager = (LocationManager) getSystemService(le); if(!locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER)){ return false; } else { return true; } } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode) { case 1: if (grantResults[0] != PackageManager.PERMISSION_GRANTED){ Toast.makeText(SendMapLactiontest.this,"PERMISSION_DENIED",Toast.LENGTH_SHORT).show(); Intent imgListIntent = new Intent(SendMapLactiontest.this, AddNewItem.class); startActivity(imgListIntent); finish(); } else { Toast.makeText(SendMapLactiontest.this,"PERMISSION_GRANTED",Toast.LENGTH_SHORT).show(); mMap.setMyLocationEnabled(true); mMap.getUiSettings().setMyLocationButtonEnabled(true); getDeviceLocation(); // permission granted do something } break; } } private void getDeviceLocation() { try { Task<Location> locationResult = mFusedLocationProviderClient.getLastLocation(); locationResult.addOnCompleteListener(this, new OnCompleteListener<Location>() { @Override public void onComplete(@NonNull Task<Location> task) { if (task.isSuccessful()) { mLastKnownLocation = task.getResult(); try { if (mLastKnownLocation==null){ isLocationEnabled(); }else { textLatitude.setText("" + mLastKnownLocation.getLatitude()); textLongitude.setText("" + mLastKnownLocation.getLongitude()); if (mLastKnownLocation != null) { mMap.moveCamera(CameraUpdateFactory.newLatLngZoom( new LatLng(mLastKnownLocation.getLatitude(), mLastKnownLocation.getLongitude()), DEFAULT_ZOOM)); } } } catch (Exception e) { e.printStackTrace(); } } else { Log.d(TAG, "Current location is null. Using defaults."); Log.e(TAG, "Exception: %s", task.getException()); mMap.moveCamera(CameraUpdateFactory .newLatLngZoom(mDefaultLocation, DEFAULT_ZOOM)); mMap.getUiSettings().setMyLocationButtonEnabled(false); } } }); } catch (SecurityException e) { Log.e("Exception: %s", e.getMessage()); } } } اتمنى من الي يعرف حل للمشكلة يساعدني
  18. السلام عليكم انا مطور تطبيقات جديد واحاول اضافة عرض الصور عن طريق SliderLayout التطبيق شغال وصور تظهر ولككني احتاج ان امكن المستخدم من الضغط على الصورة وبعد الضغط يتم نقل ID الخاص بتلك الصورة الى اكتفتي ثاني اذا ممكن احد يساعدني اكون شاكر له هذا سورس كود الصفحة الاساسية public class SlidShowMain extends AppCompatActivity { SliderLayout sliderLayout; private List<SlidShowListData> list_dataList; private JsonArrayRequest request; private RequestQueue requestQueue; TextView textView; private static final String HI = "https://uniqueandrocode.000webhostapp.com/hiren/horizontal/lpimgdata.php"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.slide_show_new); textView = (TextView)findViewById(R.id.textView); sliderLayout = (SliderLayout) findViewById(R.id.imageSlider); sliderLayout.setIndicatorAnimation(SliderLayout.Animations.WORM); list_dataList=new ArrayList<>(); sliderLayout.setScrollTimeInSec(1); SliderView sliderView = new SliderView(this); setSliderViews(); } private void setSliderViews() { request = new JsonArrayRequest(HI, new Response.Listener<JSONArray>() { @Override public void onResponse(JSONArray response) { JSONObject jsonObject = null; for (int i = 0; i < response.length(); i++) { try { jsonObject = response.getJSONObject(i); SlidShowListData listData = new SlidShowListData(jsonObject.getString("imageurl"),jsonObject.getString("id")); String name = jsonObject.getString("id"); textView.append(name + ", " +"\n\n"); list_dataList.add(listData); } catch (JSONException e) { e.printStackTrace(); } } setupdata(list_dataList); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { } }); requestQueue = Volley.newRequestQueue(this); requestQueue.add(request); } private void setupdata(List<SlidShowListData> list_dataList) { for (int i = 0; i <= 4; i++) { final SlidShowListData ld = list_dataList.get(i); SliderView view = new SliderView(this); view.setImageUrl(ld.getImageurl()); view.setImageScaleType(ImageView.ScaleType.CENTER_CROP); final int finalI = i; sliderLayout.addSliderView(view); } } } وهذا سورس كود الصفحة الثانية class SlidShowListData { private String imageurl; private String id; public SlidShowListData(String imageurl,String id) { this.imageurl = imageurl; this.id = id; } public String getImageurl() { return imageurl; } public String getId() { return id; } } وهذا ملف XML <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".SlidShowMain"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="50dp" android:gravity="center"> <androidx.cardview.widget.CardView android:layout_width="330dp" android:layout_height="250dp" android:layout_centerInParent="true" android:layout_margin="30dp" app:cardCornerRadius="8dp"> <com.smarteist.autoimageslider.SliderLayout android:id="@+id/imageSlider" android:layout_width="match_parent" android:layout_height="250dp" android:layout_alignParentTop="true" > </com.smarteist.autoimageslider.SliderLayout> </androidx.cardview.widget.CardView> </LinearLayout> </RelativeLayout> implementation 'com.github.smarteist:autoimageslider:1.1.1' implementation 'com.github.bumptech.glide:glide:4.7.1' implementation 'com.android.volley:volley:1.1.0' implementation 'com.android.support:cardview-v7:28.1.1' ياليت الي يعرف كيف ممكن ننقل ID من خلال الضغط على صورة المحددة يساعدني بتعديل على الكود المرفق ولكم جزيل الشكر
×
×
  • أضف...