بازی با true و false در متد inflater.inflate
سلام. دوستان یک مشکل عجیب برام پیش اومده که کلی از وقتم رو سر پروژه دانلودر تمیز آموزش های قدیمی گرفت.(دو سه ساعت).به کد پایین نگاه کنید:
public class MainActivity extends AppCompatActivity {
ArrayList<View> views = new ArrayList<View>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LinearLayout scrollContent = (LinearLayout) findViewById(R.id.scrollContent);
for(int i = 0 ; i < 3 ; i++){
View view = LayoutInflater.from(this).inflate(R.layout.download_structure_layout ,scrollContent , false);
TextView txtPercent =(TextView) view.findViewById(R.id.txtPercent);
txtPercent.setText("" + i);
views.add(view);
}
for(int i = 0 ; i < 3 ; i++){
View view = views.get(i);
TextView txt = (TextView) view.findViewById(R.id.txtPercent);
Toast.makeText(this, "" + txt.getText().toString(), Toast.LENGTH_SHORT).show();
}
}
از ظاهرش معلومه که چیکار میکنه. گفتم که سه بار از یک لایه لی اوت ، ویو درست کنه و بریزتش توی آرایه ویوها.و با true گذاشتن پارامتر آخر گفتم که بچسبونتش به LinearLayout ام. داخل اون لایه لی اوت یک تکست هم هست که گفتم که مقدار متغیر i رو به عنوان تکست اون در نظر بگیره. در for بعدی هم گفتم که مقدار های اون تکست رو از تو ویو های آرایه بگیره و یه Toast برای تست کردن چاپ کنه.
این موقعی درست عمل می کنه که من مقدار پارمتر چسبیدن به LinearLayout رو false بذارم.که در کد بالا هم گذاشتم.اما اگر مقدار اون رو true بذارم. هر سه تا تکست ها آخرین عدد for یعنی 2 رو مقدار میگیرن. هرچقدر فکر کردم دلیلش رو متوجه نشدم. ممنون میشم دوستان راهنمایی کنید.ممنون
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .