putExtra برای textview
سلام
زمان شروع برنامه مثلا ما یه textview داریم
میخوام یه attr بهش اضافه کنم مثلا به نام X با مقدار Y
بعدش جاهای دیگه با findViewById مقدارشو استفاده کنم
چطور میشه ؟
با تشکر
فرض کنید برنامه ای داریم که 5 تا دکمه داره. هر وقت روی یکی از دکمه ها کلید بشه، برنامه باید به یک نفر سلام کنه. پس می بینید که کارکرد دکمه ها خیلی شبیه به هم هست؛ و فقط اسم مخاطب فرق می کنه. من می خواهم فقط یک بار به هر دکمه اسم مخاطبش را بدهم و بعد از آن به کمک یک حلقه for بگویم: «هر کدام از دکمه های یک تا پنج به مخاطب خودشان سلام کنند.»
// declare buttons
Button btn1 = findViewById(R.id.tn1);
Button btn2 = findViewById(R.id.tn2);
Button btn3 = findViewById(R.id.tn3);
Button btn4 = findViewById(R.id.tn4);
Button btn5 = findViewById(R.id.tn5);
// set tags
btn1.setTag("Ali");
btn2.setTag("Kambiz");
btn2.setTag("Hasan");
btn2.setTag("Morad");
btn2.setTag("Amir");
// put buttons in an array, so we can use it in a for loop
Button[] btnList = { btn1, btn2, btn3, btn4, btn5 };
// set OnClickListener for all buttons at once!!!!!
for (int i = 0; i < 5; i++) {
btnList[i].setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Button myButton = (Button) arg0;
Log.i("TAG", "Hello " + myButton.getTag() + "! How are you?");
}
});
}
اگر می خواهید اطلاعات متعددی را در tag ذخیره بفرمایید، راه حل آن قرار دادن همه اطلاعات در یک کلاس و سپس قرار دادن متغیری از آن نوع در tag است. (جمله برای خودم هم نا مفهومه.)
مثلا می خواهم اطلاعات اشخاص را در تگ دکمه ها قرار دهم. برای این کار ابتدا یک کلاس به اسم Person درست می کنم. این جوری:
public class Person {
String name = "";
String family = "";
int age = 0;
}
سپس در برنامه اصلی کدی شبیه به این می زنم:
Person hasan = new Person();
hasan.name = "Hasan";
hasan.family = "Kambizian";
hasan.age = 21;
button1.setTag(hasan);
btnSayHello.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Person myFriend = (Person) button1.getTag();
textView1.setText("Hello " + myFriend.name + " " + myFriend.family);
}
});
می بینید که اسم و فامیل و سن این آقاهه توی تگ button1 هست.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .