View Full Version : infllate کردن
kamal70
جمعه 08 اردیبهشت 1396, 23:31 عصر
سلام من با کدهای زیر تونستم با inflate یک view که فقط button است از لایه دیگر به لایه اصلی اضافه کنم حالا من به چند تا از این view نیاز دارم که پشت سر هم درلایه اصلی قرار بگیره چطور چند تا view اضافه کنم؟
LinearLayout Rl=(LinearLayout) findViewById(R.id.activity_main);
LayoutInflater myinflate=getLayoutInflater();
View myview=myinflate.inflate(R.layout.layout,(ViewGrou p)findViewById(R.id.linear1));
Button btn=(Button)myview.findViewById(R.id.button);
Rl.addView(myview);
spiderman200700
جمعه 08 اردیبهشت 1396, 23:39 عصر
سلام.
به تعداد View هایی که نیاز داری، به همون تعداد لی اوت رو inflate کن.
kamal70
جمعه 08 اردیبهشت 1396, 23:57 عصر
آیا باید برای view های بعدی دوباره button و layout را find کنم؟ اسم view که در اینجا myview است باید هردفعه تغییرکند؟
spiderman200700
شنبه 09 اردیبهشت 1396, 00:26 صبح
الان که نگاه میکنم ظاهرا یه مشکلی داره کدتون.
من با btn کار ندارم. اگر میخواید لایه رو inflate کنید و به لی اوت R1 اضافه کنید.
باید این کار رو بکنید
LinearLayout Rl=(LinearLayout) findViewById(R.id.activity_main);
LayoutInflater myinflate=getLayoutInflater();
View myview=myinflate.inflate(R.layout.layout,Rl);
اگر هم میخواید چند بار(مثلا 10 بار) لی اوت رو به R1 اضافه کنید باید این کار رو بکنید.
LinearLayout Rl=(LinearLayout) findViewById(R.id.activity_main);
LayoutInflater myinflate=getLayoutInflater();
for (int i = 0; i < 10; i++) {
View myview=myinflate.inflate(R.layout.layout,Rl);
}
داخل حلقه هم میتونید کارهایی که نیاز دارید روی لی اوت inflate شده انجام بشه رو انجام بدید.
kamal70
شنبه 09 اردیبهشت 1396, 09:18 صبح
کدهای شما اجرا نشد کد خودم اجرا میشه فقط نمی دونم این for را کجا قرار بدم هروقت for میذارم یا از برنامه خارج میشه یا فقط یکی view اضافه می کنه
spiderman200700
شنبه 09 اردیبهشت 1396, 12:14 عصر
کدهایی که دادم بهتون اشتباه نیستن. حالا اینکه میگید اجرا نمیشه نمیدونم منظورتون چیه ولی اگه مشکلی در نتیجه کار دیده میشه بسته به طراحی لی اوت ممکنه دلایل مختلفی داشته باشه.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.