بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
طریقه ایجاد یک Button در Activity بدون تعریف کردن آن در فایل XML ( حل شده)
سلام
چطوری میشه یک دکمه در اکتیویتی ایجاد کرد و به آن دستور داد بدون اینکه در فایل xml مربوطش کد یا دستوری رو وارد کرد ؟
+2
0
فکر کنم منظور شما اینه: add button dynamically یا Create button dynamically (11 سال پیش)
0
0
من اینو میخام که آیا میشه تمام مراحلی که در فایل XML انجام میشه مثل دادن آی دی و ایجاد شکل و نوع دکمه در اکتیویتی انجام بشه ؟
دقیق نمیدونم کار button dynamically چیه (11 سال پیش)
برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال
behnam2000
11 سال پیش
+3
0
Button btn = new Button(this);
btn.setText("MyButton");
LinearLayout ll = (LinearLayout)findViewById(R.id.buttonlayout); LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); ll.addView(myButton, lp);
البته کد واضحه ولی با اجازه behnam2000 من کد رو یه توضیح کوچیک میدم،
1- یه شی به نام btn از نوع Button تعریف شده
2- تکست داخل btn رو "Mybutton" قرار داده شده
3- Liniearlout ای که در activity وجود داره و به اون id> buttonlayout اختصاص داده شده رو با l1 مشخص کردیم ( یه شی ازش ساختیم به نام l1)
4- پارامتر های layout رو مقدار width رو MATCH_PARENT و مقدار height رو WRAP_CONTENT ، در lp ذخیره شده
5- به l1 ، دکمه myButton با پارامتر lp اضافه شده
در جواب اینکه پرسدیدن تمام مراحلی که در xml انجام میشه رو میشه در اکتیویتی بصورت programmatically انجام داد، باید بگم که بله، من تو پروژه ای که اخیراٌ نوشتم مجبور بودم که یه صفحه رو داینامیک به خواسته کاربر ایجاد کنم و از همین روش استفاده کردم. (11 سال پیش)
پاسخ به سوال
دبیری
11 سال پیش
0
0
با کد زیر هم میشه خیلی راحت یک دکمه در اکتیویتی به وجود آورد که در فایل xml نیاز نباشه کدی وارد کنی
فقط ادرس یک LinearLayout که در فایل xml ، دکمه ها میخان داخلش ساخته شن رو از ما میخاد
LinearLayout ll = (LinearLayout) findViewById(R.id.lin_button);//LinearLayout دادن آدرس
Button extra = new Button(this);// ساختن دکمه جدید
extra.setText("extra");// دادن اسم به دکمه جدید
ll.addView(extra);
// دادن دستور به دکمه ساخته شده که هنگام کلیک شدن چه کاری انجام بده
extra.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(SearchActivity.this, MainActivity.class);
startActivity(intent);
}
});
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .