رفتن به مطلب
برای استفاده از انجمن و عضـویت کلیک کنید.
جستجو در
  • تنظیمات بیشتر ...
نمایش نتایجی که شامل ...
جستجو در ...

AnswerCenter

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

  • مرجع پاسخگویی
  • تولید آموزش
  • سفارش پروژه

درخواست سفارش پروژه

اطلاعیه

کاربر گرامی

به انجمن برنامه نویسی AnswerCenter.ir خوش آمدید

 برای استفاده از تمامی امکانات سایت لطفا در انجمن عضو شوید


تخته امتیازات

  1. محمدرضا شاهپیری

    محمدرضا شاهپیری

    مدیر کل سایت


    • امتیاز

      49

    • تعداد ارسال ها

      2,523


  2. rezamoaser

    rezamoaser

    کاربر رو به رشد


    • امتیاز

      37

    • تعداد ارسال ها

      132


  3. امین مهدی نژاد

    امین مهدی نژاد

    معاون انجمن


    • امتیاز

      20

    • تعداد ارسال ها

      648


  4. نورنما

    نورنما

    کاربر فعال


    • امتیاز

      14

    • تعداد ارسال ها

      534



مطالب محبوب

در حال نمایش مطالب دارای بیشترین امتیاز از زمان سه شنبه, 30 مهر 1398 در همه بخش ها

  1. 4 امتیاز
    آره من الان وصل شدم به سرور. و اینترنت داشت . با نود جی اس یه پ*ر*و*ک*س*ی واسه خودم ساختم. گوگل رو هم زدم باز کرد.
  2. 2 امتیاز
    سلام دوستان تا محدودیت ها رفع بشه می تونید با این لینکی که قرار میدم مثل سابق از گوگل استفاده کنید منبع سرزمین ذهن لینک
  3. 2 امتیاز
    آقا حل شد اون کد جاوایی که من استفاده میکردم برای b4a بود که من داشتم داخل b4j میزدم.. کد جاوای b4j برای این کار اینه که به صورت جاوا آبجکت داخل بیسیک استفاده میشه میزارم شاید بدردتون بخوره: #If java import org.bouncycastle.crypto.PBEParametersGenerator; import org.bouncycastle.crypto.digests.SHA1Digest; import org.bouncycastle.crypto.engines.AESEngine; import org.bouncycastle.crypto.generators.PKCS12ParametersGenerator; import org.bouncycastle.crypto.modes.CBCBlockCipher; import org.bouncycastle.crypto.paddings.PKCS7Padding; import org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher; import org.bouncycastle.crypto.params.ParametersWithIV; private static final String KEYGEN_ALGORITHM = "PBEWITHSHAAND256BITAES-CBC-BC"; private static final String CIPHER_ALGORITHM = "AES/CBC/PKCS5Padding"; private static final byte[] SALT = { 12, 54, 23, 45, 23, 52, 12 }; private static final byte[] IV = { 116, 13, 72, -50, 77, 45, -3, -72, -117, 32, 23, 19, 72, 21, 111, 22 }; public static byte[] encrypt(String password,byte[] data) throws Exception { PKCS12ParametersGenerator pGen = new PKCS12ParametersGenerator(new SHA1Digest()); char[] passwordChars = password.toCharArray(); byte[] pkcs12PasswordBytes = PBEParametersGenerator.PKCS12PasswordToBytes(passwordChars); pGen.init(pkcs12PasswordBytes, SALT, 1024); CBCBlockCipher aesCBC = new CBCBlockCipher(new AESEngine()); ParametersWithIV aesCBCParams = new ParametersWithIV(pGen.generateDerivedParameters(256), IV); aesCBC.init(true, aesCBCParams); PaddedBufferedBlockCipher aesCipher = new PaddedBufferedBlockCipher(aesCBC, new PKCS7Padding()); aesCipher.init(true, pGen.generateDerivedParameters(256)); byte[] plainTemp = new byte[aesCipher.getOutputSize(data.length)]; int offset = aesCipher.processBytes(data, 0, data.length, plainTemp, 0); int last = aesCipher.doFinal(plainTemp, offset); byte[] plain = new byte[offset + last]; System.arraycopy(plainTemp, 0, plain, 0, plain.length); return plain; } public static byte[] decrypt(String password, byte[] data) throws Exception { PKCS12ParametersGenerator pGen = new PKCS12ParametersGenerator(new SHA1Digest()); char[] passwordChars = password.toCharArray(); byte[] pkcs12PasswordBytes = PBEParametersGenerator.PKCS12PasswordToBytes(passwordChars); pGen.init(pkcs12PasswordBytes, SALT, 1024); CBCBlockCipher aesCBC = new CBCBlockCipher(new AESEngine()); ParametersWithIV aesCBCParams = new ParametersWithIV(pGen.generateDerivedParameters(256), IV); aesCBC.init(false, aesCBCParams); PaddedBufferedBlockCipher aesCipher = new PaddedBufferedBlockCipher(aesCBC, new PKCS7Padding()); byte[] plainTemp = new byte[aesCipher.getOutputSize(data.length)]; int offset = aesCipher.processBytes(data, 0, data.length, plainTemp, 0); int last = aesCipher.doFinal(plainTemp, offset); byte[] plain = new byte[offset + last]; System.arraycopy(plainTemp, 0, plain, 0, plain.length); return plain; } #End If فقط برای استفاده از این کد این خط رو هم به بیسیک اضافه کنید: #AdditionalJar: bcprov-jdk15on-159 bcprov-jdk15on-159.jar باید دانلود بشه و داخل پوشه کتابخونه ریخته بشه
  4. 2 امتیاز
    درود شما باید با مفهموم tag و sender اشنا باشی که داخل انجمن سرچ کنی واست میاد اموزش بالارو ببین وقتی فهمیدی tag و sender چی هست میتونی کاری که میخوای انجام بدی کلی میگم که دستت بیاد شما یک باتون داخل لیوت مولتی پنل میزاری یک قسمت داخل دیتابیس درست میکنی و اسم اکتویتیارو ذخیره میکنی بعد واسه ساب باتون بیا از دیتابیس اسم اکتیوتی رو بگیر و دستور استارت اکتیویتی انجام بده که این کار با تگ انجام میشه
  5. 2 امتیاز
    بله شدنی هست دوست عزیز. شما باید کار با فایلها و اینتنتها رو بلد باشین. حجم کار زیاد هست ولی پیچیدگی در حد اول ابتدایی
  6. 2 امتیاز
    اسکرین بدید. ببینید عزیز من خودم تارگت رو همیشه روی آخرین api ست میکنم که در حال حاظر ۲۹ هست. در صورتی که به تغییرات و ویژگیهای جدید اون نسخه ای که قراره تارگت بزارین کاملا واقفین روی همون نسخه تنظیم کنید در غیر این صورت روی همون ۲۶ تنظیم کنید. توصیه ما همون ۲۹ هست البته با تسلط کامل بر تغییرات این نسخه
  7. 2 امتیاز
    یه کم پیچیده اس. به صورت زیر باید عمل کنید. اول اینکه فایلهای svg به صورت خام نمیتونید توی اندروید نمایش بدید باید تبدیل به vector drawabl بشه. برای اینکار از این سایت استفاده کنید. وارد سایت بشید و فایل svg رو بهش بدید گزینه دانلود رو بزنید و یه فایل xml دانلود میشه. فایل رو باید توی پروژه قرار بدید.. به این صورت که یه پوشه به نام res توی محلی که پروژه رو ذخیره کردین ایجاد کنید توی این پوشه یه پوشه دیگه به نام drawable ایجاد کنید و فایل xml رو اینجا کپی کنید. بعد توی اکتیویتی کدهای زیر رو قرار بدید. #Region Project Attributes #ApplicationLabel: off #VersionCode: 1 #VersionName: 'SupportedOrientations possible values: unspecified, landscape or portrait. #SupportedOrientations: unspecified #CanInstallToExternalStorage: False #AdditionalRes:..\res #AdditionalJar:com.android.support:support-compat #End Region #If java import android.support.v4.content.ContextCompat; import android.widget.ImageView; import anywheresoftware.b4a.BA; public void setSvgBackground(ImageView imageView,String background){ int ic=BA.applicationContext.getResources().getIdentifier(background, "drawable", BA.applicationContext.getPackageName()); imageView.setBackgroundColor(0x00000000); imageView.setImageDrawable(ContextCompat.getDrawable(BA.applicationContext,ic)); } #End If کتابخونه javaobject رو تیک بزنید و به صورت زیر فایل رو بکگراند ایمیجویو قرار بدید. البته مقادیر رو جایگزاری کنید دیگه. اینجا اسم فایل xml مثلا svg_vector هست. Dim jo As JavaObject jo.InitializeContext.RunMethod("setSvgBackground",Array As Object(ImageView1,"svg_vector"))
  8. 2 امتیاز
    دوست عزیز نیازی نیست پست اول به این طویلی رو نقل قول کنید. مشکل از به روز نبودن sdk تون هست. از طریق خود بیسیک آپدیت کنید
  9. 2 امتیاز
    سلام داداش بله اندروید که من باهاش تست کردم 9 هستش متاسفانه جواب نمیده یعنی پیام اینکه روی زنگ تلفن ثبت شده رو میزنه اما روی زنگ گوشی ثبت نمیشه و با زنگ خوردن آهنگ مورد نظر رو پخش نمیکنه در واقعه جایگزین نمیکنه اهنگه رو
  10. 1 امتیاز
    https://parswebserver.com/هاست-nodejs/ از ماهی 30 تومن شروع میشه
  11. 1 امتیاز
    درود اگه منظورتون فاصله بین پنل هاس بجای خط 37 کد زیرو قرار بده stop = stop + panel1.Height+1%y
  12. 1 امتیاز
    درود @ rezamoaser عزیز ، با تلاش خودتون قطعاً بهترین برنامه رو میسازید، برای اینکه اول کار با مشکلات ریز و درشت مواجه نشید میتونید دوره ساخت شبکه اجتماعی رو از انجمن خریداری کنید و به نحو احسن ازش استفاده کنید. لینک دوره آموزشی
  13. 1 امتیاز
    با سلام و عرض ادب به تمامی اساتید بزرگ امیدوارم عالی بوده باشید تا به الان . راستش قضد داشتم یه برنامه پیامکی آفلاین بسازم اول کار که یه سری عکس و رینگتون هم داشته باشه ولی خوب اینبرنامه ها برای مدتی هستن و بعد از اون کاراییشون تموم میشه و کاربر از دست میده (برنامه رو پاک میکنن) برای همین قصد اینو دارم که علاوه بر بخش افلاینش بخش انلاین هم اضافه کنم. پس اموزش استاد مهدی ایزدی رودیدم خیلی زیبا و جالب برنامه رو ساختن و این خیلی با ارزشه!!!! ولی قبل از هر اقدامی تصمیم گرفتم چند سوالی بپرسم راجب برنامه پیامکی آنلاین تا قبل از این که دست به کار بشم. من میخوام هاست یکساله بگیرم که قیمتش 30 هزار تا اونجاییکه اطلاع دارم میشه. 1پس اگر من لینک عکس ها رو هم آپلود کرده بفرستم (که تو برنامه قسمت ایمیج ویو نشونش بده)بهتره تا این که حجم برنامه رو سنگین کنم تو قسمت افلاینش(یعنی عکسو افلاین قرارش بدم برنامه خیلی سنگین میشه)؟؟؟؟ 2:آقا مهدی عزیز از یه برنامه برای ارسال پیامک به فضای هاست خودشون استفاده کردن و با زدن دکمه بارگذاری متن تو همون برنامه پس از فرستادن به هاست قرار میگرفت, پس اگر یه برنامه بسازم که اینطور دست ادمین باشه تا پیام ها رو ارسال کنه به هاست بهتره و در برنامه اصلی که قصدمون نشون دادن پیام تو همونه ذخیره بشه و نشونش بده؟؟ اینطوره میشه دوتا برنامه یکی پیامن به هاست میده یکی هم ازاون میگیرهتاتویبرنامهاصلی نشونش بده. میشه اینطوری؟؟؟؟؟ 3:میشه با ادغام کردن دو قسمت بالایی یعنی قسمت که پیام رو به هاست میده وقسمتی که برنامه رو از هاست میگیره یکی باشه (گرچه که اقا مهدی هم همین کارو کردن. یعنی با یکی اطلاعات رو ثبت میکردن و توی همون برنامه هم نشونش میداد!!) اما با این شکل که بشه شبیه به برنامه ای شبیه کافه جمله که افراد توش میتونن متن رو خودشون ارسال کنن تا توی برنامه قرار بگیره؟ و یا مثل با همون کافه جمله با بیسیک درستش کرد ولی خوب گرافیکشو بهتر کرد و بشه لینک عکس بزاریم و اونجا فراخانی بشه. (دوستان من تازه واردم توی این مبحث معذرت زیاد سوال پرسیدم و وقتتون رو گرفتم) هاست یکساله 100 مگابیت بیشتر نیست فکرکنم .لینک بزارم که مشکلی نداره براش؟
  14. 1 امتیاز
    درود @ pascal عزیز ، فایل پروژتون یا سمپلتون رو به صورت زیپ شده برای عیب یابی در این تاپیک ارسال نمایید تا بررسی شود.
  15. 1 امتیاز
    درود ، قطعاً آخرین نکته ای که به نمایش گذاشته میشه داخل یک اکتیویتی هستش شما کافیه در ساب Activity_Pause ( شناسایی ترک کردن اکتیویتی توسط کاربر ) آیدی مورد نظر اون مطلب رو در فضایی موقتی ( فایل و یا .... ) ذخیره کنید سپس در کد باتنی که تعریف کردید اون اکتیوتی رو استارت کنید توسط اطلاعاتی که در اون فایل ذخیره شده.
  16. 1 امتیاز
    درود @ fun_code پیشنهاد فعلی بنده استفاده از ریسایکلر افقی و اینکه قابلیت زوم رو به ایمیج ویوی آیتم بدید قطعاً عملیه.
  17. 1 امتیاز
    سلام اساتید من میخوام ایکون برنامه مخفی شه ، ولی گوشی به عنوان برنامه مخرب شناسایی میکنه . نمیشه کاری کرد ؟
  18. 1 امتیاز
    سلام دوستم این تاپیک رو بررسی کردین ؟
  19. 1 امتیاز
    دوست عزیز شما آموزشها رو دیدید اصلا؟ تو اکثر آموزشها ما این قضیه رو داریم. سورس زیر رو دریافت کنید. چندتا عکس رو ما اومدیم لود کردیم. در ضمن تاپیک هم قفل میشه و مشکلاتو سوالاتتونو تو تاپیک کتابخونه بپرسید. img_pr.zip
  20. 1 امتیاز
    متاسفانه برای منم باز نمیشه ورژن اخری که بتونم اندروید 9 یا 10 رو بهش اضافه کنم . اصلا درواقع خودش هم باز نمیشه تا یک شبیه ساز ساده رو به کار بندازم این توی ویندوز ده اتفاق افتاده که باز نمیشه فک کنم . من الان از ناکس استفاده میکنم
  21. 1 امتیاز
    باز نمیشه که اندروید 9 و api های جدید رو اضافه کنم. ویندوز 10 . چیکارش کنم. روش کلیک میکنم هیچ اتفاقی نمیفته. صفحه سیاه کامنت سریع باز میشه بسته میشه Run As Administrator هم میزنم ولی برنامه های با همون اس دی کا بدون مشکل کامپایل و ران میشه
  22. 1 امتیاز
    من از کتابخلنه video player ایتفاده میکردم... تقریبا راضی بودم ازش
  23. 1 امتیاز
    درود شما باید با jsoup کار کنی تا بتونی گت المنت انجام بدی اینم سورس امیدوارم کمکت کنه https://github.com/jhy/jsoup
  24. 1 امتیاز
    درود این اسکریپت با php نوشته شده و چیز ساده ای هست کاری که میکنه میاد یک سری عدد های تصادفیو به تصویر تبدیل میکنه stsp=BD97CF93EE35AEDB411ADF783F50F14D.c1573150079434 &key=ffcc7aaa06304b569552b350b4f780f08edefaf63e7d6c80e543f6149f79c539 &rand=0.8957235766237595 پارامتر ها هم که داخل لینک میبینید با هربار رفرش صفحه راهور منحصر به فرد خودتون ساخته میشه و کپچا جدیدی تولید میکنه
  25. 1 امتیاز
    چجوری زیپ میکنید دوست عزیز؟ کدهاتونو قرار بدید
  26. 1 امتیاز
    دوست عزیز برای رهنماییتون بسیار متشکرم. مشکلم حل شد
  27. 1 امتیاز
    سلام به اساتید و دوستان من با دستور listfile میتونم لیست فایل ها و پوشه های حافظه خارجی بگیرم ، ولی نه میشه کپی کرد( میخوام به حافظه داخلی کپی کنم) ، نه میشه پوشه درست کرد ، نه پاک کرد وهیچ کاری نمیشه کرد. اونطوری که تو انجمن خوندم ، file .rootexternal همون حافظه خارجیه ولی برای گوشی هایی که حافظه خارجی پیش فرض باشه.گوشی من سامسونگ j6+ نمیشه حافظه پیش فرض رو تغییر داد. الان rootexternal روی حافظه داخلی عمل میکنه. دسترسی حافظه هم تو manifest دادم. ببخشید زیاد شد پیامم . ممنون میشم کمک کنین
  28. 1 امتیاز
    دوست عزیز دستورات مربوط به حافظه تو نسخه های 6 به بالا کلا تغییر کرده. و دستورات معمولی بیسیک جوابگو نیست. انشالا یه کتابخونه جامع برای کار با فایل برای دوستان آماده میکنیم که بتونن راحت کار کنن
  29. 1 امتیاز
    با سلام و عرض ادب خدمت تمامي دوستان و مهندسان گرانقدر لطفا اگر در صورت امكان بفرماييد كه چطوري ميتونم مختصاتي را كه از ديتا بيس ميگيريم رو در ماركر گوگل قرار دهم خيلي ممنون ميشم اين سورس برنامم 'Activity module Sub Process_Globals Dim GPS1 As GPS Dim ht2 As HttpJob End Sub Sub Globals Dim mFragment As MapFragment Dim gmap As GoogleMap Dim MapPanel As Panel Dim LM As LocationManagerEx Dim GpsEnable As Button Dim PolygonDraw As Button Dim label1 As Label Dim parviz As Double Dim a As Byte Private Button1 As Button End Sub Sub Activity_Create(FirstTime As Boolean) a=a+1 label1.Text=a Activity.LoadLayout("test1") ht2.Initialize("read",Me) ht2.PostString("http://www.sim808.com/gps/readdata.php","") MapPanel.Initialize("") Activity.AddView(MapPanel, 0, 0, 100%x, 90%y) If mFragment.IsGooglePlayServicesAvailable = False Then Dim a As Int = Msgbox2("گوگل پلی را نصب می کنید؟", "", "بله", "خیر", "", Null) If a = DialogResponse.POSITIVE Then Dim PI As PhoneIntents StartActivity(PI.OpenBrowser("http://cafebazaar.ir/app/?id=com.google.android.gms")) Else ExitApplication End If Else mFragment.Initialize("Map", MapPanel) End If LM.Initialize("LM") GPS1.Initialize("GPS") GpsEnable.Initialize("GpsEnable") PolygonDraw.Initialize("PolygonDraw") Activity.AddView(GpsEnable, 10%x, 2%y, 20%x, 10%y) GpsEnable.Text = "GpsEnable" Activity.AddView(PolygonDraw, 60%x, 2%y, 20%x, 10%y) PolygonDraw.Text = "PolygonDraw" End Sub Sub Map_Ready gmap = mFragment.GetMap If gmap.IsInitialized = False Then ToastMessageShow("Error initializing map", True) Else ' gmap.AddMarker(39.054925, 46.2650,15) 'parviz=ht2.GetString gmap.AddMarker(parviz,parviz,15) gmap.AddMarker2(38.054920,46.2650, parviz, gmap.HUE_ROSE) Dim cp As CameraPosition cp.Initialize(38.054920, 46.2650, 15) gmap.AnimateCamera(cp) gmap.MapType = gmap.MAP_TYPE_NORMAL gmap.MyLocationEnabled = True gmap.TrafficEnabled = True gmap.GetUiSettings.AllGesturesEnabled = True End If End Sub Sub GpsEnable_Click If GPS1.GPSEnabled = False Then StartActivity(GPS1.LocationSettingsIntent) Else LM.requestGPSLocation End If End Sub Sub b_Click End Sub Sub PolygonDraw_Click Dim a(5) As LatLng a(0).Initialize(35.69726412, 51.42567158) a(1).Initialize(35.69541694, 51.42766714) a(2).Initialize(35.69313405, 51.42786026) a(3).Initialize(35.69121706, 51.42382622) a(4).Initialize(35.69167017, 51.42987728) Dim l As List l.Initialize For i = 0 To 3 l.Clear l.Add(a(i)) l.Add(a(i+1)) Dim PL As PolygonOptions PL.Initialize PL.AddPoints(l) PL.StrokeColor = Colors.Red gmap.AddMarker(a(i).Latitude, a(i).Longitude, i) Dim GME As GoogleMapsExtras GME.AddPolygon(gmap, PL) Next End Sub Sub LM_locationchanged(locArg As Location) Dim cp As CameraPosition cp.Initialize(locArg.Latitude, locArg.Longitude, 14) gmap.AnimateCamera(cp) LM.stopGPSListening End Sub Sub JobDone (job As HttpJob) If job.Success=True Then If job.JobName="read" Then ProgressDialogHide label1.Text=ht2.GetString End If Else ToastMessageShow("خطا در برقرای اتصال",False) End If End Sub دريافت سورس
  30. 1 امتیاز
    چطوری میتونم بگم که اگر ساعت بین 8 و 12 بود ؟؟ If DateTime.Time(DateTime.Now) =>08:00:00 And DateTime.Time(DateTime.Now) <= 12:00:00 Then ToastMessageShow("",False) End If
  31. 1 امتیاز
    سلام ممنون بابت توجهتون ولی اینکار رو کردم بازم همین طوری میشه
  32. 1 امتیاز
    با سلام خدمت همه انسورسنتریهای عزیز. ************************************************************************************************************************************************ نسخه 6.5 منتشر شد. تو این نسخه مشکل کوکی ها و عدم دریافت اطلاعات رفع شده. دوستان همه ی درخواستهای post و get فقط دو ایونت onSucsess و onError دارن و فقط از طریق دستور executRequest اجرا میشن. بنابر این باید متدهاتونو ویرایش کنید. متد upload هم ایونتهاش تغییر کرده. متدها رو یک بار پیاده کنید که تغییرات رو ببینید. ***همچنین متدهای اینشیالایز نیز تغییرات جزئی داشته. به صورت زیر هست اینشیالایز** Dim setup As FastNetSetup setup.SetupFastNet.setUpDownloader.WithCookieManager.WithSSL.Build ******************************************************************************************************************************************** نسخه 6 (نسخه جدید) منتشر شد. آموزش نسخه 6 دوستان نسخه جدید به کلی با اندروید استودیو بازنویسی شده و همه کتابخانه های مورد استفاده به روز شده. پس حتما به نسخه جدید به روز کنید سورسهاتونو. تغییرات اساسی: ا:- دانلودر بسیار پیشرفته پورت شده از این لینک 2:- تغییر نحوه اینشیالایز: دوستان تو نسخه جدید اینشالایز به صورت کلی هست. یعنی با یک بار اینشیالایز کردن میتونید تو کل پروژه ازش استفاده کنید. پس اینشیالایز باید جایی انجام بشه که تو کل پروژه بشه بهش دسترسی پیدا کرد. بهترین جا برای اینشیالایز متد Service_Create از سرویس Starter هست. مثلا یک نحوه اینشیالایز کردن به صورت زیر هست. Sub Service_Create Dim setup As FastNetSetup setup.FastNetSetup.setUpDownloader.Build End Sub 3:-تغییر نام برخی از متدها. برخی از متدها نامهای درستی نداشتن و بعضا هم نوشتارشون با نام اصلی متفاوت بود که اصلاح شده. متدهای اصلاح شده addHeader , executerequestAsString و چندتای دیگه که اگه برخورد کردید فقط کافیه متدها رو ببینید. خیلی شبیه هست تفاودت در حد حرف هست فقط ************************************************************************************************************************************************* =============================================================================================================== ************لینک آموزش کار با کتابخانه********** ================================================================================================================ نسخه 5.5 متد withTLS به کتابخونه اضافه شده که برای بسیاری از سایتهایی که SSL دارن جوابگو هست ======================================================================================================== نسخه 5.3 (اضافه شدن تایم اوت به کتابخانه) Dim fastnetsetup As FastNetSetup fastnetsetup.SetupFastNet.WithTimeOut(60).Build ' زمان به ثانیه هست ===================================================================================================== نسخه 5.1 با امکان اضافه کردن پراکسی به کتابخانه اضافه شد. مثال استفاده از پراکسی. Dim fastnetsetup As FastNetSetup fastnetsetup.SetupFastNet.WithProxy(fastnetsetup.TypeHttp,"192.168.1888",8080,"","").Build ================================================================================================================================= **** نسخه 4.5 اضافه شد. توی این نسخه کلاس PersianNetIMG رو بنا به در خواست دوستان ویرایش کردیم و متدهای جدیدی اضافه شده.یکی اینکه به خاطر یه سری محدودیتها اونو از دیزاینر حذف کردیم و این بار از طریق کد نویسی اضافه میشه و کلیک گذاشتن بیمپ برای عکس دیفالت و از همه مهمتر نمایش پروگرس بار تا زمانی که عکس به طور کامل لود بشه و یه سری امکانات دیگه که با هاش کار کنین آشنا میشین. دوستان در نظر داشته باشین که این کلاس رو صرفت برای راحتی کار دوستان به کتابخونه اضافه کردیم در صورتی که میخواین کارهای پیشرفته تری با عکس انجام بدین بهتره از کتابخونه های گلاید و یا پیکاسو استفاده کنید. مثال Private PersianNetIMG1 As PersianNetIMG PersianNetIMG1.initialize("pim") Activity.AddView(PersianNetIMG1.View,30%x,0,40%x,50%y) Dim xml As XmlLayoutBuilder PersianNetIMG1.ErrorImageResId=xml.GetResourceId("drawable","myimg") PersianNetIMG1.DefaultImageResId=xml.GetResourceId("drawable","loading") PersianNetIMG1.ImageUrl=imgurl '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' در صورتی که میخواین سایز ایمیج ویو با سایز عکس دانلود شده برابر باشه از کد زیر استفاده کنید PersianNetIMG1.setToMatchBitmap ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' برای مخفی کردن PersianNetIMG1.seTVisibility(False) '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' برای کلیک Sub pim_onImgClick ToastMessageShow("clicked",False) End Sub ================================================================================================================== ====================================================================================================================== ***************************************************************************************************************************************************** یکی از جدیترین و عذاب آورترین مشکلات توی بیسیک به ملکوت الهی پیوست. توی بیسیک کتابخونه هایی که برای ارتباط با سرور وجود داره تقریبا میشه گفت نیازهای ابتدایی رو برآورده میکنن. مثلا شما بخواین همزمان عکس و متن بفرستین یا بخواین فایل آپلود کنین و روند آپلود شدن رو ببینین یا مثلا بخواین همراه متدهای پست و گت هدر بفرستین یا مثلا بخواین به طور مستقیم بیتمپ بگیرین دیگه نمیتونین و مجبورین از کتابخونه های دیگه ای که رپ شده استفاده کنید که هر کدوم متدهای خاصی دارن فقط. این کتابخونه همه ی اینا رو برای شما یک جا فراهم میکنه. این کتابخونه بر پایه کتابخونه های قدرتمند okhttp3 و okio ساخته شده که واقعا بی نظیرن(محصولات شگفت انگیز شرکت squar) برای شروع و نشون دادن قابلیتهای کتابخونه اولین قسمت آموزش رو اختصاص دادم به ساخت یه فرم ثبت نام کامل که تو اون شما میتونید علاوه بر اطلاعات متنی که مثلا نام و پسوردو اینا هست عکس پروفایل هم بفرستین. پریویوی زیرخروجی آ»وزش هست. این آموزش فوقلاده همراه خرید برای دوستان قابل دانلود هست. لینک فروشگاه محصول یکی دیگه از قابلیتهای جذاب و کاربردی این کتابخونه کلاس PersianNetIMG هست. با این کلاس شما یک کاستوم ویوی بسیار کاربردی رو به پروژتون اضافه میکنید. این ویو کارش گرفتن عکس از اینترنت و نمایش توی ایمیج ویو هست. سه تا متد به شکل زیر داره که میتونید به راحتی استفاده کنید. PersianNetIMG1.ImageUrl=imgurl آدرس عکسی که توی سرور هست رو بدین و اونو دانلود و نمایش میده Dim xml As XmlLayoutBuilder PersianNetIMG1.DefaultImageResId=xml.GetResourceId("drawable","myimg") گذاشتن عکس پیش فرض برای ایمیج ویو PersianNetIMG1.ErrorImageResId=xml.GetResourceId("drawable","myimg") در صورت خطا در دانلود این عکس لود میشه واما قابلیتهای کتابخانه اول کتابخونه رو به شکل زیر اینشیالایز کنید Dim prfn As PersianFastNetwork prfn.initialize("prfn") متد اول. PostRequest Dim post As PostRequest post=prfn.BuildPostQuery("url","tag") post.addHeader("key","value") post.addParametrs("ke1","value1") post.addParametrs("ke2","value2") post.executRequest ''''''''''''''''''''''''''''''''''''''''''''''''''''' همه کدهای بالا تو یه خط میشه این prfn.BuildPostQuery("url","tag").addHeader("key","value").addParametrs("ke1","value1").addParametrs("ke2","value2").executRequest متد دوم. GetRequest Dim get As GetRequest get=prfn.BuildGetQuery("url","tag") get.addHeader("key","value") get.addParametrs("key1","value1") get.executRequest ==================================================== یه خطی prfn.BuildGetQuery("url","tag").addHeader("key","value").addHeder("key1","value1").executRequest متد سوم. UploadRequest Dim upl As UploadRequest upl=prfn.BuildUploadQuery("url","tag") upl.addMultipartParameter("key1","value1") upl.addMultipartParameter("key2","value2") upl.addMultipartFile("filekey","filepatch") اضافه کردن فایل به همراه پارامترهای ارسال شده upl.setisRunToAnotherThread(True) تعیین اینکه آپلود در ترد جداگانه انجام شود upl.startUpload متد چهارم. DownloadRequest Dim dnl As DownloadRequest dnl=prfN.buildDownloadQuery("masirdanlod",3,4,False,10000) dnl.startDonload("url") dnl.pauseDownload("url") dnl.deletFileDownload("url",True) متد پنجم. GetBitmapReQuest Dim getbit As GetBitmapReQuest getbit=prfn.BuildGetBitmapGetQuery("imagelink","tag") getbit.setBitmapMaxHeight(250) getbit.setBitmapMaxWidth(250) getbit.startgetBitmap گرفتن بیتمپ دانلود شده Sub prfn_onGetBitmapOkListener(bitmap As Object) Dim bitm As Bitmap=bitmap Activity.SetBackgroundImage(bitm) End Sub توی آموزش اول به upload و get پرداخته شده. استفاده از کتابخونه بسیار ساده اس و حتی بدون آموزش هم میتونید به راحتی ازش استفاده کنید. امیدوارم مورد استفاده دوستان قرار بگیره. ***توجه*** نسخه 2 کتابخونه اضافه شد. تو این نسخه خیلی از کمبودها برطرف شده و از همه مهمتر قابلیت مدیریت کردن درخواستها به وسیله TAG به کتابخونه اضافه شده مثال برای مدیریت تگ.
  33. 1 امتیاز
    سلام باید متن خطا رو هم بفرستید تا دوستان بتوانند برای مشکلتان پاسخ بدهند!
  34. 1 امتیاز
    سلام دوستان برای بهتر شدن کارم فایل xml layout رو ساختم و اضافش کردم ولی توی کامپایل کردن این خطا رو میده B4A Version: 9.50 Java Version: 11 Parsing code. (0.01s) Building folders structure. (0.02s) Compiling code. (0.01s) Compiling layouts code. (0.00s) Organizing libraries. (0.00s) (Android Support Library) Generating R file. Error ..\\res\layout\item.txt:11: error: Error parsing XML: duplicate attribute میگه توی فایل قسمت تکراری اوردم ولی خودم نگاه کردم متوجه نشدم منظورش چیه فایل رو پیوست میکنم همینجا ممنون از پاسخگوییتون همون xml layout
  35. 1 امتیاز
    کی میشه اون گرافیکی که دلم میخواد رو با پرشین ریسکالر ویو درست کنم خخخ
  36. 1 امتیاز
    سلام دوست عزیز درسته این یه مشکل خیلی بزرگ برای من شده یه هفته ای هست که هرچی زور میزنم به جایی نمیرسم . راستش اون فایل intro2 که قسمتی رو میسازناستاد شاهپیری که از xml استفاده میکنن برای گذاشتن عکس. اسمش item.xml هست که متاسفانه توی پوشه ها نبود و برای ساختنش توی ویدیو کامل دیده نمیشه . میشه اگر اونو داری پیوست کنیش!!!!!!!!! برای نمایش عکس توی sticy یا نرمال لیوت که با xml بخوام درستش کنم نیاز دارم . (کلا تا قبل از این با xml اشنایی ندارم) شرمنذهزیاد حرف زدم لطف میکنیداگر دارید پیوست کنید
  37. 1 امتیاز
    سلام استاد خسته نباشید یه سوال ازتون داشتم توی اموزش دوم خودتون راجب به StackLayout تو ضیحات خوبی دادید . اما سوال اینجاست قسمت xml که ایتم قرارش میدید رو چطور باید ساخت توی سایت مطلب درستی راجب این موضوع نبود . و اینکه عکس های فراخوانی شدن که توی پروژه card layout وجود داره . چطور میشه اضافه کرد به برنامه؟؟؟ یعنی فراخوانی اونا با فایل xml انجام میشه و فقط اینکه اونا رو طی یک قاعده خاص بالا بیاره رو ما میدیم؟؟ دوم با اینکار میشه تا حداکثر 100 یا 150 عکس رو قرار دادش؟ ممنون میشم پاسخ بدید (من زیادی مبتدیم نتونیتم فایل xml رو درستش کنم ) ممنون و اینکه من با دیدن کد ها و خوندن اونا این اموزش ها رو یاد میگیرم میشه اموزش یا سرورس رو بزارید لطفا اگر تاپیکی موجوده در موردxml و فراخوانیش با card layout یاهمون StackLayout چطوریه ؟؟ لطفا اینواموزش بدید یاتاپیکی مربوطکه شایدبتونه کمک کنه رولطف کنید. من گشتم ولی اجب اینکه برای عکس درستش کنیم چیزی نبود مرسی
  38. 1 امتیاز
    سلام دوستان پروژه اندرویدی داریم که باید از دیتابیس استفاده کنیم و امکان اینکه در سمت سرور بذاریم اپ رو وجود ندارد چونکه دیتابیس رو اماده کردیم درون برنامه sqlite studio الان امادس و میخوایم با کتابخونه sql cipher این دیتابیس اماده رو رمز نگاری کنیم کسی میتونه راهنمایی کنه ممنون میشم
  39. 1 امتیاز
    سلام داداش نه من راه دیگه سراغ ندارم وایستا اساتید بیان بر کمک
  40. 1 امتیاز
    بله تمام فایها را دانلود کنید و داخل یک فولدر به نام SDK بریزید . من با شبیه ساز خود بیسیک تا حالا کار نکردم و اطلاعی در مورد نحوه راه اندازیش ندارم . از شبیه ساز جنی موشن استفاده میکنم . شناسایی sdk داخل خود بیسیک مثل قبله ! تفاوتی نکرده ! شما باید javac.exe و android.jar بهش معرفی کنی .
  41. 1 امتیاز
    دوستان ممکنه آموزشی فیلم یا متنی موجود باشه؟
  42. 1 امتیاز
    سلام و وقت بخیر چه ربطی به سرور داره ؟ یا شاید اشتباه تایپی بوده سورس منظورت بوده اگر منظورت رینگتون یعنی همون صدای زنگ موبایل اول باید دسترسی نوشتن تنظیمات بگیری تو اندروید های جدید (تقریبا 6 به بالا ) که در تاپیک زیر پستش هست بعد برای ست کردن همه که دیگه کاری نداره یه نمونه کد می زارم کتابخونه phone ام تیک بزن Sub done1_Click Try Dim ring As RingtoneManager Dim shpu As Int = 1 'متغییر مربوط به ادرس در فایل ها If File.Exists(File.DirRootExternal,shpu&".ogg") = True Then File.Delete(File.DirRootExternal,shpu&".ogg") LogColor("DELETE A FILE...",Colors.Blue) End If Dim v As Int requestpermisian v=Msgbox2("صدای زنگ تغییر کند؟",ListView1.GetItem(shpu),"بله","خیر","",Null) LogColor("Select RING : " & shpu,Colors.Green) If v=DialogResponse.POSITIVE Then If File.Exists(File.DirRootExternal,shpu&".ogg") = False Or File.Exists(File.DirRootExternal,shpu&".ogg") = True Then File.Copy(File.DirAssets,shpu&".ogg",File.DirRootExternal,shpu&".ogg") Dim r As String Try r = ring.AddToMediaStore(File.DirRootExternal,shpu&".ogg",shpu,False,False,True,True) File.WriteString(File.DirInternal,shpu&".txt",r) Catch Dim re As String re=File.ReadString(File.DirInternal,shpu&".txt") ring.DeleteRingtone(re) r = ring.AddToMediaStore(File.DirRootExternal,shpu&".ogg",shpu,False,False,True,True) File.WriteString(File.DirInternal,shpu&".txt",r) End Try ring.SetDefault(ring.TYPE_RINGTONE,r) LogColor("SET RING : " & shpu,Colors.Green) ' ToastMessageShow(ListView1.GetItem(Position)&" به عنوان صدای زنگ تنظیم شد",True) End If End If ' other.tostsucess("انجام شد.") Try 'نمایش تبلیغات الامبال Try ' show_ad_tamamsafehe Catch Log(LastException) End Try Catch Log(LastException) End Try Catch ' ToastMessageShow("انجام نشد!دوباره تلاش کنید...",False) End Try End Sub موفق و پیروز باشی
  43. 1 امتیاز
    مشکل از sdk هست عزیز. از طریق خود بیسیک آپدیت کنید. توصیه میشه به طور کامل همشو دانلود کنید. یه کم طول میکشه و حجم زیادی استفاده میشه ولی خب دیگه اینجور مشکلاتی به وجود نمیاد
  44. 1 امتیاز
    سورس قرار گرفت عزیز. از پنل خرید دریافت کنید سورس رو
  45. 1 امتیاز
    سلام من خواستم برنامه ام رو منتشر کنم دیدم گفتن که برنامه شما هنگام نصب ارور Block by play protect میده این یک سیستم جدید هست که گوگل راه انداخته تا از کاربر ها در برابر برنامه های مخرب محافظت کنه تو اینترنت جست و جو کردم و به راحل هایی رسیدم که گفتم با شما هم به اشتراک بذارم شاید به کارتون بیاد اول از همه پرمیشن های اضافی برنامه تون رو حذف کنید دوم اگه اطلاعاتی از سرور میگیرید حتما از ssl استفاده کنید اگه باز هم مشکل حل نشد باید برنامتون برای برای گوگل ارسال کنید تا تایید کنن که برنامه شما مشکلی نداره برای اینکار باید به سایت https://support.google.com/googleplay/android-developer/contact/protectappeals بهتره با چیزشکن برید برید اونجا یک فرمی هست که باید به دقت پر کنید اول از شما ایمیل تون رو خواسته که به دقت وارد کنید بعد از شما نام توسعه دهنده رو خواسته که زیاد مهم نیست میتونید اسم خودتون یا گروهتون رو بنویسید بعد از شما پیکج نیم برنامه تون رو خواسته که با دقت وارد کنید توی فیلد بعد از شما خواسته برنامتون رو یک جا آپلود کنید و لینکشو بنویسید.این سخت ترین مرحله کاره چون اونا همه لینک ها رو قبول نمیکنن برای اینکه لینک دانلود سالمی بدست بیارید این مراحل رو انجام بدید: 1.یک اکانت Dropbox بسازید 2.برنامتون رو توش آپلود کنید 3.Share link برنامه رو بگیرید(رو دکمه Share کلیک کنید و بعد روی Create Link بزنید) نکته:بعد کپی کردن لینک روی دکمه hide Link کلیک نکنید! 4.لینک رو توی یک نوتپد کپی کنید 5.اگر دقت کنید آخر لینک عدد 0 صفر نوشته شده اون رو تبدیل به 1 کنید 6.وارد سایت bit.ly بشید لینک رو توی کادری که توی سایت هست کپی کنید و دکمه Shorten رو بزنید تا یک لینک کوتاه به شما بده خب این این لینک بدست اومده رو توی کادر URL to download your APK file کپی کنید توی کادر بعدی از شما میخواد یه توضیحی از برنامه بدین.توضیح رو به این صورت باید بنویسید: اول یه توضیح کلی در مورد کارکرد برنامه و کارهایی که برنامه انجام میده بنویسید بعد تک تک پرمیشن هایی که استفاده کردید رو بنویسید و دلیل استفاده ازش رو هم ذکر کنید آخر سر هم بنویسید که برنامه شما برای چه گروه سنی مناسب هست نکته:حتما باید توضیحتون رو انگلیسی و بدون غلط املایی بنویسید میتونید Google Translate هم کمک بگیرید در آخر دکمه Submit رو بزنید اگه همه مراحل رو درست رفته باشید بلافاصله به اون ایمیلی که وارد کردید یک پیام میاد که نوشته: Hi You recently submitted an appeal for an app with Google Play Protect. We have successfully received the appeal for your app. Our team will review the app and any information you have provided. Thank You, Google Play Protect Team این یعنی گوگل برنامه شما رو بررسی میکنه ممکنه هفت تا ده روز طول بکشه هرروز برنامه تون رو تست کنید ببنید مشکل رفع شده یا نه چون اگر برنامه شما تایید بشه به شما خبر نمیدن اما اگر تایید نشه خبر میدن توی طول بررسی به هیچ وجه پکیج نیم و پرمیشن های برنامه تون رو تغییر ندید یک مورد نگران کننده این هست که ما برنامه مون رو با B4A ساختیم و این IDE زیاد معروف نیست و ممکنه گوگل قبول نکنه اگه کسی با B4A برنامه ساخته و از این روش استفاده کرده حتما بگه من خودم درخواستم رو ارسال کردم اما فعلا جوابش نیومده امیدوارم استفاده کرده باشید
  46. 1 امتیاز
    لینک دانلود مگه جایی میاد عزیز؟ شما اگه خرید کردین باید برید تو قسمت مدیریت خرید و از اونجا محصولات خریداری شده رو دانلود کنید
  47. 1 امتیاز
    با سلام خدمت دوستان عزیز انسر سنتری. ایشالا که حالتون خوب باشه. یه آموزش بی نظیر و نایاب رو واستون آماده کردیم. همه در جریان هستیم که تلگرام یه نرم افزار اوپن سورس هست و همه ما میتونیم اونو بسته به سلیقه خودمون ویرایش کنیم و ازش استفاده کنیم. از طرفی این غول بی شاخ و دم رو هم به همین سادگیا نمیتونید توی اندروید استودیو اجرا کنید و به محض اجرا خطاهایی میبینید که به عقل جن هم نمیرسه از کجا اومده واسه همین یه آموزش کامل رو واستون آماده کردم که توی اون جدیدترین سورس تلگرام رو به راحتی توی اندروید استودیو اجرا کنید بدون هیچ ارور و مروری. دوستان واقعا هفت خان رستم رو گذروندم تا تونستم اونو کامپایل کنم. توصیه میکنم حتما آموزش رو ببینید. و پسند هم دیگه نیاز به گفتن نیست موفق باشید لینک آموزش
  48. 1 امتیاز
    سلام و خسته نباشید خدمت کاربران عزیز خب برای کسایی که با ایجاد تاپیک جدید در انجمن آشنایی ندارن لازم هستش که یک آموزش کوتاهی در این مورد داشته باشیم... فرض کنید شما وارد صفحه اول انجمن با آدرس AnswerCenter.IR هستید خب توی این صفحه یک سری سربخش و بخش ها رو میبینید... سربخش ها مثل: بخش اطلاعات اصلی انجمن برنامه نویسی بیسیک4اندروید برنامه نویسی اندروید استودیو و ... خب حالا توی هر سربخش یک سری بخش های مرتبط با اون سربخش قرار داره... مثلا توی سربخش برنامه نویسی بیسیک4اندروید بخش های زیر قرار داره: آموزش های گام به گام برای مبتدی ها پرسش و پاسخ (بیسیک4اندروید) کتابخانه ها (Libraries) درخواست Wrap کردن کتابخانه سورس کدها قطعه کدها (Code Snippets) آموزش های تصویری آموزش های متنی ابزارهای B4A برنامه های ساخته شده توسط شما خب حالا فرض کنید شما توی بیسیک4اندروید یه جا مشکل دارید و یا سوال دارید پس در قسمت برنامه نویسی بیسیک4اندروید روی بخش "پرسش و پاسخ (بیسیک4اندروید)" کلیک میکنید تا وارد اون بخش بشید خب حالا همچین صفحه ای براتون باز میشه: طبق تصویر و شماره گذاری عمل کنید 1- عنوان تاپیک را مناسب و مختصر و دربرگیرنده ی متن سوال انتخاب کنید 2- متن کامل سوال را با حفظ احترام و مرتب وارد کنید (هرچقدر سوالتون بهتر و کامل تر و تمیز تر پرسیده بشه بدون شک زودتر جواب میگیرید) 3- اگر لازم است قطعه کدی قرار بدید روی فلش <> کلیک کنید و اون قطعه کد رو اونجا وارد کنید و گزینه افزودن به مطلب رو بزنید 4- اگر لازم است عکسی را برای نمایش قرار بدید طبق عکس 4 روی گزینه پیوست از رسانه های دیگر و سپس روی افزودن تصویر از آدرس کلیک کنید، سپس آدرس عکس آپلود شده رو در اونجا قرار بدید و سپش گزینه افزودن به مطلب رو بزنید نکته: سعی کنید حتما و حتما و حتما تمامی عکس ها و فایل هایی رو که قرار میدید بر روی سرور سایت PicoFile.com آپلود شده باشن چون سرعت و ماندگاری بالایی رو دارن 5- اگر میخواهید به محض اینکه کسی به سوال شما پاسخ داد در انجمن برای شما یک اعلامیه به نمایش در بیاد و شما رو از گرفتن پاسخ آگاه کنه قسمت 5 رو فعال کنید 6- در نهایت روش گزینه ارسال موضوع کلیک کنید تا تاپیک شما ایجاد شود (حداکثر تا 24) ساعت منتظر پاسخ بمانید... معمولا در کمتر از چند ساعت جوابتون رو میگیرید نکات اضافی: - بعد از سوال پرسیدن... بخصوص در دقایق ابتدایی سعی کنید حتما توی انجمن حضور داشته باشید چون شاید کسی از شما توضیحات تکمیلی بخواد و یا سوالی داشته باشه باید جواب اساتید رو بدید تا بتونن بهتر راهنمایی تون کنند - سعی کنید به طور مستقیم تمام کدهاتون رو نزارید و بگید بچه ها برنامم خطا میده ! چون معمولا هیچ جوابی نمیگیرید... اصولش اینه که توضیحات فارسی رو میدید که میخوام فلان کار رو انجام بدم و از این تیکه کد (فقط کد مربوط به جایی که خطا دارید) استفاده میکنم و این خطا رو هم دریافت میکنم. - به هیچ وجه سوالات مربوط به بحث آزاد و یا مربوط به بخش توسعه دهندگان رو با بخش پرسش و پاسخ قاطی نکنید و هر سوال رو حتما در بخش خودش مطرح کنید موفق و پیروز باشید
  49. 1 امتیاز
    درود بر همه کاربران و اساتید محترم به درخواست بعضی از دوستان نحوه کار با کتابخانه جیسون رو براتون آماده کردم امید وارم گامی در پر بار کردن مطالب انجمن برداشته باشم برگ سبزیست تحفه درویش و پیشکش برای زحمات دوستان و خسته نباشید به مدیریت برای قالب جدید. سعی می کنم از اول شروع کنم: JSON چیست؟ JSON مخفف کلمات JavaScript Object Notation می باشد JSON فرمتی سبک وزن برای مبادله داده های متنی می باشد JSON مستقل از زبان می باشد * JSON بصورت "خود تشریح" و برای درک آسان می باشد یکی از پر کاربرد ترین استفاده JSON واکشی داده های JSON از سرویس دهنده وب (به عنوان یک فایل یا درخواست Html). برای اطلاعات بیشتر می تونید به آدرس زیر یه سری بزنید معرفي جي‌سان، JSON و برای اطلاعات بیشتر در مورد کتابخانه جیسون به سایت زیر مراجعه کنید JSON حال با ذکر یک مثال می ریم سراغ b4a. فرض کنید ما یک فایل جیسون داریم به صورت زیر: { "basic4android.org":[ { "id": "1", "name": "mehdi", "family": "izadi","city": "city_1" } , { "id": "2", "name": "nima","family": "ghobadi", "city": "city_2" } , { "id": "3", "name": "majid", "family": "arta","city": "city_3" } , { "id": "4", "name": "mostafa", "family": "haghighi","city": "city_4" } , { "id": "5", "name": "farzad","family": "mosavi", "city": "city_5" } , { "id": "6", "name": "armin","family": "ramezani", "city": "city_6" } , { "id": "7", "name": "mehdi","family": "alavi", "city": "city_7" } , { "id": "8", "name": "mehdi","family": "rostami", "city": "city_8" } , { "id": "9", "name": "ahmad","family": "samadyar", "city": "city_9" } , { "id": "10", "name": "pejman","family": "nikravan", "city": "city_10" } ]} با مراجعه به سایت زیر می توانیم آبجیکت ها و آرایه های فایل جیسون بالا را مشاهده کنیم string of JSON text وارد سایت شده و در تکست باکس متن جیسون خود رو وارد می کنیم و بر روی دکمه json 2 html کلیک می کنیم همانطور که مشاهده می کنید یک جدول با مشخصات فایل جیسون ما ساخته و آبجکت و آرایه ها و value نشان داده می شود توضیحات بالا عرض شد تا با json بیشتر آشنا بشید حالا می ریم سراغ کد نویسی مثل تمام پروژه ها سیو کردن و بقیه عمل ها که خودتون استادید 1-referenced library بعد می ریم سراغ ارجاع به کتابخانه یا referenced library که برای استفاده از کتابخانه json نیاز به زدن تیک این کتابخانه داریم یعنی تیک کتابخانه json v 1.10 را می زنیم 1-1-add file یا اظافه کردن پوشه در این مرحله ما یک فایل txt که حاوی فایل json ماست رو به برنامه اظافه می کنیم که این فایل حاوی اطلاعات json ماست یعنی یک فایل txt درست کرده و محتوای json رو داخل آن ریخته و با پسوند .txt ذخیره و به برنامه اظافه می کنیم 2-تعریف متغیر ها ما نیاز به یک متغیراز نوع json داریم برای این کار در داخل Sub Globals متغیر را تعریف می کنیم و یک lable یک listview و یک spinner که به شکل زیر تعریف می کنیم Sub Globals 'These global variables will be redeclared each time the activity is created. 'These variables can only be accessed from this module. Dim json As JSONParser Private Label1 As Label Private ListView1 As ListView Private Spinner1 As Spinner End Sub 3-Initialize یا مقداردهی اولیه همان طور که می دونید برای دسترسی بهتر و شناساندن متغیر به برنامه ما می یایم از مقداردهی اولیه یا Initialize کردن استفاده می کنیم به شکل زیر json.Initialize(File.ReadString(File.DirAssets,"test.txt")) دستور بالا می یاد در داخل متغیر json ما محتوای string فایل test.txt از File.DirAssets که یک دسترسی فقط خواندنیست می ریزه 4-نسبت دادن فایل json به یک متغیر map سپس یک متغیر map تعریف می کنیم تا محتوای آبجیکت های json رو داخل آن ذخیره کنیم Dim m As Map نکته: اگر در جدولی که سایت string of JSON text به ما داده توجه کنید ما یک آبجیکت داریم به نام basic4android.org که از 10 آرایه تشکیل شده است حالا ما می یایم آبجیکت رو به متغیر map نسبت می دیم و سپس چون این آبجکت از لیستی از آرایه ها تشکیل شده یک متغیر از نوع لیست هم تعریف می کنیم و به آرایه های آبجکتمون نسبت می دیم این طوری ما سعی می کنیم به تمام value ها دسترسی داشته باشیم. مثل کد زیر: m=json.NextObject Dim bas As List bas=m.Get("basic4android.org") با دستور m=json.NextObject ما اولین آبجکت فایل جیسونمون رو می خونیم و داخل متغیر m می ریزیم و با دستور bas=m.Get("basic4android.org") ما آرایه های object اولمون که با اندیس basic4android.org مشخص شده رو داخل متغیر bas می ریزیم 5-پیمایش در آرایه همانظور که می دونید بیشتر اوقات هرجا اسم از آرایه می یاد ما برای پیمایش در آرایه از یک حلقه استفاده می کنیم آرایه حالا ما نیاز به یک حلقه for داریم که از 0 شروع بشه و تا انتهای آریه ساخته شدمون بره بخاطر همین از دستور زیر استفاده می کنیم For i=0 To bas.Size-1 next در دستور بالا ما یه حلقه ایجاد کردیم که از 0 شروع می شه و تا انتهای آرایه bas می ره چون هر عضو آرایه ی ما هم خودش از چند مقدارتشکیل شده دوباره می یایم هر کودوم از آرایه مون رو به متغیر map نسبت می دیم تا بتونیم به value هاش دسترسی پیدا کنیم برای این کار از دستور زیر استفاده می کنیم: For i=0 To bas.Size-1 m=bas.Get(i) next ما حالا کامل می تونیم به همه فایل جیسونمون دسترسی داشته باشیم و از طیق اندیس های آرایه به داده های اصلی و مقدار های نهایی دسترسی داشته باشیم حالا می یایم از طریق اندیس های آرایه که اگر یادتون باشه با id,name,family,city مشخص شده بودند به مقدار هاشون دسترسی پیدا می کنیم مثلا در کد زیر اولین آرایه ما هست: { "id": "1", "name": "mehdi", "family": "izadi","city": "city_1" } اندیس id مقدارش برابر با 1 است و name برابر با mehdi و family برابر با izadi و الی آخر 6-مقدار دهی به Spinner1 و ListView1 که دیگه این مقدار دهی هم کاملا مشخص است و حلقه for ما هم کامل می شه For i=0 To bas.Size-1 m=bas.Get(i) Spinner1.Add(m.Get("id")) ListView1.AddTwoLines(m.Get("name"), m.Get("family")) Next در آخر هم کل پروژه به صورت زیر در می یاد: Sub Globals 'These global variables will be redeclared each time the activity is created. 'These variables can only be accessed from this module. Dim json As JSONParser Private Label1 As Label Private ListView1 As ListView Private Spinner1 As Spinner End Sub Sub Activity_Create(FirstTime As Boolean) 'Do not forget to load the layout file created with the visual designer. For example: Activity.LoadLayout("Layout1") json.Initialize(File.ReadString(File.DirAssets,"test.txt")) Dim m As Map m=json.NextObject Dim bas As List bas=m.Get("basic4android.org") For i=0 To bas.Size-1 m=bas.Get(i) Spinner1.Add(m.Get("id")) ListView1.AddTwoLines(m.Get("name"), m.Get("family")) Next End Sub ممنون از همه عزیزان آموزش بعدی برای کار با json online اگر برسم می زارم شرمنده اگر یه کم گنگه فعلا تازه کارم اما خودمو سعی می کنم برسونم json.rar lib.rar
  50. 1 امتیاز
    به نام خدا سلام و خسته نباشید خدمت دوستان عزیز کسایی که تمایل دارن درخواست ارتقا درجه کاربری بدن میتونن در این بخش یک تاپیک ایجاد کنن و درخواست خودشون رو بدن پست ها فقط برای مدیریت نمایش داده میشه ! شرایط عادی ارتقا درجه کاربری : برای ارتقا به کاربر در حال پیشرفت : 50 پست و 50 لایک برای ارتقا به کاربر نیمه فعال : 150 پست و 250 لایک برای ارتقا به کاربر فعال : 300 پست و 500 لایک ارتقا به درجه پاسخگو و راهنما: 600 پست و 1000 لایک ارتقاء به درجه استاد: 1200 پست و 2000 لایک برای ارتقاء به کاربر ویژه: کاربران VIP و کاربران با 2000 پست و 2000 لایک ارتقا به مدیر بخش و سایر درجه های کاربری به سلیقه ی مدیریت انجمن صورت میگیرد ! نکته : در موارد ذکر شده در بالا تاریخ عضویت افراد و تعداد پست های مفید نیز لحاظ می شود و فقط بسته به تعداد پست و لایک نیست موفق و پیروز باشید مدیریت انجمن AnswerCenter.IR
×
×
  • جدید...