آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

طریقه ایجاد یک Button در Activity بدون تعریف کردن آن در فایل XML ( حل شده)

دبیری  11 سال پیش  11 سال پیش
+1 0

سلام
چطوری میشه یک دکمه در اکتیویتی ایجاد کرد و به آن دستور داد بدون اینکه در فایل 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);
0 0
میشه یه توضیح مختصر درباره کدی که نوشتی بدید ؟ (11 سال پیش)
+2 0
البته کد واضحه ولی با اجازه 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 سال پیش)
+1 0
با این روش یک Button به بخوبی اضاف میشه < اما واقعا در Main.xml اضاف نمیشه ! که برای همیشه باقی بمونه چطور همینچین چیزی ممکنه ؟ < واینکه بجای استفاده از Gone چطور میشه یک عنصر رو واقعا از Main.xml پاک کرد ؟ (11 سال پیش)
0 0
ممنون از توضیحی که دادی . یه سوال ، تو خط آخر چطوری یک View به اسم myButton بسازیم ؟ چون اکلیپس نمیشناستش (11 سال پیش)
+1 0
اینجا چون button رو btn نامگذاری کردن پس باید بجای myButton نوشته میشد btn یعنی درستش اینه l1.addView(btn,lp (11 سال پیش)
پاسخ به سوال 
nooriDeveloper  11 سال پیش
+2 0

برای پاک کردن :

 l1.removeView(btn);
پاسخ به سوال 
دبیری  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);

}
});
+1 0
حتی LinearLayout رو هم لازم نیست حتماٌ تو xml اضافه کنی، میتونی اون رو هم مثل button با جاوا به برنامه اضافه کنی، فقط بجای Button از LinearLaayout استفاده کن (11 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .