نمایش نتایج 1 تا 1 از 1

نام تاپیک: ارسال لیستی از داده ها بین دو Activity (هر نوع داده ای)

  1. #1
    کاربر دائمی آواتار arman_Delta2002
    تاریخ عضویت
    تیر 1387
    محل زندگی
    بابلسر
    سن
    37
    پست
    707

    ارسال لیستی از داده ها بین دو Activity (هر نوع داده ای)

    سلام امروز بهتون نحوه ارسال لیستی از داده ها رو میدم که مهم نیست چه نوع داده ای باشه و فکر کنم اولین بار باشه چون هیچ اموزشی نبود واسه این خلاقیت
    خوب اول یه کلاس درست میکنیم

    public class tb_Clob_Login
    {
    public int ID { get; set; }
    public string FName { get; set; }
    public string UserName { get; set; }
    public string Pass { get; set; }
    public string Mobile { get; set; }
    public string Emailr { get; set; }
    public byte[] AccessT { get; set; }
    public bool Ban { get; set; }
    public string BanDateTime { get; set; }
    public string BanDescription { get; set; }
    public double Latitude { get; set; }
    public double Longitude { get; set; }
    public bool Show1 { get; set; }
    }

    خوب حالا یه تابع برای تبدیل لیست به بایت باید داشته باشیم
    این تایع یک شیع رو میگیره و به ارایه ای از بایت تقییر میده.
    public byte[] ToByteArray(object source)
    {
    var formatter = new BinaryFormatter();
    using (var stream = new MemoryStream())
    {
    formatter.Serialize(stream, source);
    return stream.ToArray();
    }
    }
    خوب حالا میریم سراق اکتیویتی که لیست داده ها قراره اجرا شه
    ما فرض بر این میگیریم که کاربر روی دکمه ورود کلیک کرده و پس از دریافت اطلاعات اون و ریختنش توی یکه لیست از کلاس بالا داده ها رو میفرستیم واسه اکتیویتی دوم که کاربر وارد شده رو نشون میده و اطلاعات رو میگیره
    در فرم اول :

    List<tb_Clob_Login> _result2 = new List<tb_Clob_Login>(); // ایجاد لیستی از کلاس
    WebService1.tb_Clob_Login tb_Clob_LoginTemp = new WebService1.tb_Clob_Login(); // یه کلاس موقت از رو اون میسازم که بتونم داده ها رو به سرور لاگین کنم
    tb_Clob_LoginTemp.UserName = Username1;
    tb_Clob_LoginTemp.Pass = Password;
    tb_Clob_LoginTemp.Emailr = Username1;
    tb_Clob_LoginTemp.Ban = false;
    tb_Clob_LoginTemp.Show1 = true;
    _result2 = WebServiceTemp1.Logining_tb_Clob_Login(tb_Clob_Log inTemp).Cast <tb_Clob_Login>().ToList(); // اینجا لاگین میشه و اگر داده ای برگرده داده ها رو داخل لیست پر میکنه

    if (_result2.Count > 0)
    {
    PublicClass1 PublicClassTemp = new PublicClass1(); // چون من این تابع تبدیل کلاس به بایت رو داخل یه کلاس به اسم PublicClass1 ریختم باید یه نمونه ازش بسازم
    byte[] ConvertDataToByteTemp = PublicClassTemp.ToByteArray(_result2); // اینجا هم یه متقییر از نوع ارایه ای از بایت ها میسازم که کلاس تبدیل لیست ام رو به بایت هم صدا زدم


    Intent intentTemp = new Intent(this ,typeof( ClobFlyOutMainActivity)); // در این قسمت یه نمونه از اکتیویتی که قراره داده ها رو بگره میسازم
    intentTemp.PutExtra("UserLogin", ConvertDataToByteTemp); // به اون نمونه که خط قبل ساختم با این دستور اون کلاسی که به بایت تبدیل شده رو میفرستم و نام ارسال شده هم گزاشتم UserLogin
    StartActivity(intentTemp); // و نمونه ساخته شده رو استارت میکنم
    }
    else
    {
    Toast.MakeText(this, "رمز ورود اشتباه میباشد!", ToastLength.Long).Show();
    Vibrator VibratorTemp1 = (Vibrator)GetSystemService(Context.VibratorService );
    VibratorTemp1.Vibrate(100);
    }


    تا اینجا کار اکتویتی اول تموم شد و داده ها ارسال میشه حالا باید بریم بگیریمش
    تو اکتیوتی دریافت کننده این کد را اضافه میکنیم

    protected override void OnCreate (Bundle bundle)
    {
    base.OnCreate (bundle);

    BinaryFormatter bf = new BinaryFormatter(); // یه متقییر از نوع روبرو تعریف میکنیم
    byte[] TT = (byte[])Intent.Extras.GetByteArray("UserLogin"); // با این دستور یه متقییر از نوع بایتی از ارایه تعریف میکنیم که مقدار دریافتی رو بشه میدیم
    using (Stream ms = new MemoryStream(TT)) // بقیش هم مشخصه
    {
    List<tb_Clob_Login> myList = (List<tb_Clob_Login>)bf.Deserialize(ms); // تبدیل بایت به لیست داده ای که ارسال شده بود
    }


    }



    موفق باشید(اگه میشد برگردم به زمان قدیم به تاریخی برمیگشتم که سازنده اندروید فکر ساختنش به ذهنش رسیده بود و برای نجات جان بشریت از این فاجه نرم افزاری میکشتمش )
    آخرین ویرایش به وسیله arman_Delta2002 : شنبه 06 دی 1393 در 17:49 عصر

تاپیک های مشابه

  1. {آموزش} - ارسال اطلاعات بین دو Activity
    نوشته شده توسط darkeliden در بخش Android Studio
    پاسخ: 9
    آخرین پست: یک شنبه 15 آذر 1394, 16:02 عصر
  2. نحوه ارسال لیستی از داده از view به controler
    نوشته شده توسط shaki_phd در بخش ASP.NET MVC
    پاسخ: 4
    آخرین پست: سه شنبه 21 مرداد 1393, 09:32 صبح
  3. انتخاب داده های بین دو تاریخ
    نوشته شده توسط ramin149 در بخش T-SQL
    پاسخ: 0
    آخرین پست: شنبه 04 تیر 1390, 13:50 عصر
  4. سوال: انتقال داده ها بین View ها
    نوشته شده توسط آریوس1985 در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: دوشنبه 30 شهریور 1388, 12:27 عصر
  5. انتقال داده ها بین صفحات با request.params
    نوشته شده توسط xcomlock در بخش ASP.NET Web Forms
    پاسخ: 0
    آخرین پست: جمعه 01 خرداد 1388, 08:41 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •