آموزش چند نکته از اندروید
براي استارت زدن يک اکتيويتي از کد زير استفاده کنيد:
Intent myIntent = new Intent(Activity1.this,Activity2);
startActivity(myIntent);
براي گرفتن ديتا از اکتيويتي اول که به محض شروع برنامه اجرا ميشود و پردازش هايي را انجام مي دهد و سپس بايد نتيجه را به اکتيويتي دوم که اکتيويتي اصلي است بفرستد مثلا در صفحه لاگين کاربرد دارد که يوزر و پس را بايد به اکتيويتي اصلي بفرستد:
کدي که که در اکتيويتي اول(اکتيويتي لاگين) بايد نوشته شود :
// Make an intent to start next activity.
Intent i = new Intent(Activity1.this, Activity2.class);
//Change the activity.
i.putExtra(“key”, string);
startActivity(i);
finish();
}
و کدي که بايد در on create اکتيويتي دوم که اکتيويتي اصلي است نوشته شود به صورت زير است:
Intent newint = getIntent();
string = newint.getStringExtra(“key”);
حال مقدار استرينگ شامل رشته شما است که در اکتيويتي لاگين گرفتيد.
حالت سوم حالتي است که اکتيويتي اول يا اکتيويتي اصلي شما بازشده حال ميخواهيد يک اکتيويتي باز کنيد پردازشي انجام دهيد و و دوباره نتيجه رو برگردونيد به اکتيويتي اصلي (مثل سرچ ديواس هاي بلوتوث)
In Activity1, start Activity2 as:
Intent i = new Intent(this, Activity2.class);
startActivityForResult(i, 1);
In Activity2, use setResult for sending data back:
Intent intent = new Intent();
intent.putExtra(“key”, string)
setResult(RESULT_OK, intent);
finish();
And in Activity1, receive data with onActivityResult:
تابع زير را بالاي on create کپي کنيد
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1) {
if(resultCode == RESULT_OK) {
String string = data.getStringExtra(“key”);
}
}
}
اگر داخل اکتیویتی اصلی میخواهید مقادیری را کنترل کنید و یا مقدار تکست ویو یا باتن ها را در داخل یک کلاس که به صورت فایل جدا از اکتیویتی اصلی ایجاد شده تغییر دهید باید به صورت زیر عمل کنید:
۱-ابتدا دو تابع زیر در اکتیویتی اصلی تعریف کنید :
@Override
public void onStart() {
super.onStart();
inst = this;
}
public static SmsActivity instance() {
return inst;
}
۲-سپس میتوانید در داخل کلاس به عنوان مثال برای تغییر مقدار یک تکست ویو به شکل زیر عمل کنید :
inst.temp_text.setText(get_sms + “°C”);
نکته:دقت کنید که مقدار TextView temp_text باید در اکتیویتی اصلی تعریف شود.
اگر قصد دارید یک تابع را که در اکتیویتی اصلی ایجاد شده است در بقیه اکتیویتی ها از آن استفاده کنید به صورت زیر عمل کنید:
public class FirstActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
}
public void method() {
// some code
}
}
public class SecondActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
FirstActivity fact = new FIrstActivity();
fact.method();
}
}