رفتن به مطلب

انتقال اطلاعات بین اکتیویتی ها و کنترل آن


مجید آرتا

ارسال‌های توصیه شده

سلام

امیدوارم حالتون خوب و خوش باشه.

آقای محمودی عزیز توی این تاپیک آموزش تصویری در مورد اکتیویتی و ارسال اطلاعات بین اکتیویتی ها رو دادند و بنده هم به صورت متنی قصد دارم توضیحی رو بدم ( از ماهیت فیلم خبر ندارم)

http://answercenter.ir/topic/8823-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D9%82%D8%AF%D9%85%D8%A7%D8%AA%DB%8C-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D8%A7%DA%A9%D8%AA%DB%8C%D9%88%DB%8C%D8%AA%DB%8C-%D8%AC%D8%AF%DB%8C%D8%AF-%D9%88-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%D8%A2/

 

خب برای ساخت اکتیویتی اکتیویتی جدید می تونید اکتیویتی که بعد از ایجاد پروژه ساخته میشه رو کپی کنید به وسیله نگه داشتن کلید CTRL  و دراگ کردن اکتیویتی بروی Package.و یا یک Class  ایجاد کنید و کلاس رو extends  کنید از Activity.

و در AndroidMnaifest  هم باید اضافه بشه ( جزیئات توی فیلم گفته شده).

در ادامه توی B4A برای اینکه ما بتونیم پارامتری رو به اکتیویتی دیگه بفرستیم باید متغییرشو توی Proccess_Globals  تعریف می کردیم و تبادل رو انجام می دادیم.اما توی جاوا به وسیله Intent  و PutExtra  این عمل رو انجام می دیم.

خب انواع مختلفی از PutExtra  وجود داره که بستگی به نوع اطلاعات ارسالی داره;رشته ، عدد ، منطقی ( True , Flase )  و .........

 

اکتیویتی که قصد داریم مقدار بفرستیم به این شکل کد می نویسیم :

package ir.itgolden.arta.activites;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;


public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button btnGo = (Button) findViewById(R.id.btnGo);
        btnGo.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                Intent intent = new Intent(MainActivity.this, SecondActivity.class);
                intent.putExtra("TXT", "Majid");
                MainActivity.this.startActivity(intent);
            }
        });
    }
}

یک دکمه ساخته بودیم و رویدادش ( لیسنر کلیک ) رو هم تعریف کردیم.

در ادامه یک Intent  تعریف کردیم و پارامتر اول رو هم اکتویتی فعلی و پارامتر دوم اکتیویتی مورد نظر.

و خط بعدی اومدیم از putExtra  استفاده کردیم و یک کلید به اسم TXT  ساختیم که مقدار یا Value  از نوع رشته که حاوی اسم Majid  هستش قرار دادیم و در خط بعدی اکتیویتی بعدی رو استارت می کنیم.

 

و حالا اکتیویتی دوم ( گیرنده اطلاعات) :package ir.itgolden.arta.activites;


import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;


public class SecondActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second);
        Bundle extra = getIntent().getExtras();
        if (extra != null) {
            if (extra.containsKey("TXT")) {

                Toast.makeText(SecondActivity.this, extra.getString("TXT"), Toast.LENGTH_SHORT).show();
            }
        }
    }
}

خب برای اینکه بتونیم پارامتر های ارسالی رو دریافت کنیم باید یک متغییر از نوع Bundle  تعریف کنیم و مقادیر رو بگیریم ( احتمال Null  بودن هم هست پس بعدش از شرط استفاده می کنیم ).

خب  در ادامه میاییم شرط قرار می دیم که مقدار دریافتی نا مساوی بود با Null  و یا تهی بود و دارای کلیدی به اسم TXT  بود بیا برای ما به وسیله یک Toast  نمایش بده.

میتونستیم مقدار extra.getString  رو توی یک متغییر String  بریزیم و نمایش بدیم در هر صورت تفاوتی در نتیجه کار نداره.

 

خب با یک آموزش ساده متوجه شدیم که به چه شکل می تونیم مقادیر ارسالی رو دریافت و کنترلشون کنیم.

 

تشکر از آقای محمودی عزیز بابت آموزش تصویریشون 3>

 

موفق باشید.

AnswerCenter.IR

 

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...