اکتیویتی
سلام میخواستم بدونم اگر یه لایوتی مثل لایوت شکل زیر داشته باشیم وبخواهیم با کلیک روی هر کدوم از دکمه ها یه صفحه جدید باز بشه چه کار کنیم ایا باید برای هرکدوم یه اکتیویتی ایجاد کنیم وتوی اون اکتیویتی لایوت مورد نظرمونو صدا بزنیم البته این کار رو میشه انجام داد ولی اگر تعداد دکمه ها بالا باشه صد در صد تو چرخه حیات اکتیویتی هابه مشکل بر میخوریم)چکار کنم جان من یکی جواب کامل بده. ممنون

شما میتونی یک اکتیویتی داشته باشی که RelativeLayout باشه و به تعداد دلخواه توش layout داشته باشی که میتونن حتی روی هم باشند و یا همه fill_parent باشن و کل صفحه رو بگیرن
بعد برای button ها تعریف کنی هر کدوم یک layout رو visible کنه و بقیه layout ها رو invisible کنه برای کنترل کردن اونام میتونی layout ها رو توی آرایه ذخیره کنی!
البته واقعا نمیدونم این کار بهینه هست یا نه اساتید بیان بگن برا خودمم سواله!
نمونه کد:
public Button[] sampleButtons = { R.id.btnSample1,
R.id.btnSample2,
R.id.btnSample3,
R.id.btnSample4, };
public ViewGroup[] sampleLayouts = { R.id.lytSample1,
R.id.lytSample2,
R.id.lytSample3,
R.id.lytSample4, };
OnClickListener listener = new OnClickListener() {
@Override
public void onClick(View v) {
int tag = (Integer) v.getTag();
for (int i = 0; i < 4; i++) {
sampleLayouts[i].setVisibility(View.INVISIBLE);
}
sampleLayouts[tag].setVisibility(View.VISIBLE);
}
};
for (int i = 0; i < 4; i++) {
sampleButtons[i].setOnClickListener(listener);
sampleButtons[i].setTag(i);
}
فکز میکنم با این الگوریتم (باز بستگی داره ب شرایط شما) خوب میشه مدیریتش کرد!
فرض می گیریم تو دیتابیس دوتا جدول هست با نام های listcontent و activitycontent
لیست ویو اطلاعاتش رو از listcontent و اکتویتی ای که با کلیک روی دکمه ها واردش می شیم از activitycontent می گیره.
حالا توی هر دو جدول یه فیلد می سازیم که حکم کلید داره مثلا اسمش key هست(این فیلد رو توی هر دوتا جدول listcontent و activitycontent می سازیم). و مقداره این فیلد تو هر دو جدول برای رکوردهای مرتبط یکیه.
مثلا دکمه هفتم اطلاعاتش رو از رکورد هفتم توی جدول listcontent می گیره و با کلیک شدن رو دکمه هفتم اکتیوی دیگر باز میشه که این اکتویتی اطلاعاتش رو از رکورد هفتم جدول activitycontent میگیره. حالا چون این دوتا رکورد باهم مرتبط هستند مقدار key هردو رو یکی قرار می دیم (مثلا می زاریم seven)
حالا وقتی روی هر دکمه کلیک میشه می گیم مقداره key اون ردیف رو(توی این مثال مقدار key برابر seven بود) به اکتیویتی دوم ارسال کن (با Extra این کار رو می کنیم) و توی اکتیویتی دوم میگیم که مقداره extra رو بگیر و توی جدول activitycontent جست و جو کن و اون ردیفی رو که مقدار keyش برابر با مقدار extra هست رو برگردون. الان به راحتی می تونی محتوای اون ردیف توی جدول activitycontent رو بگیری و باهاشون هرکاری می خوای بکنی
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .