Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set Id of dynamic created layout?

I want to give ID to some views (textview ,imageview etc) in a layout that is programmetically created. So what is the best way to set ID.

like image 817
abhishek ameta Avatar asked Jan 20 '12 06:01

abhishek ameta


2 Answers

You create an ids.xml file and place all your required ids in it as below

<?xml version="1.0" encoding="utf-8"?> <resources>         <item type="id" name="layout1" />         <item type="id" name="layout2" />         <item type="id" name="layout3" /> </resources> 

Now for your dynamically created layouts or views you can use these ids as below

new_layout1.setId(R.id.layout1); new_view2.setId(R.id.layout2); new_layout3.setId(R.id.layout3); 

I hope it may help you.

like image 136
Yugandhar Babu Avatar answered Sep 23 '22 03:09

Yugandhar Babu


Google finally realized the need of generating unique IDs for programmatically created views...

From API level 17 and above, one can use View.generateViewId() like this:

view.setId(View.generateViewId()); 

For apps targeting API level 16 or lower, use ViewCompat.generateViewId() instead:

view.setId(ViewCompat.generateViewId()); 
like image 36
Varun Bhatia Avatar answered Sep 21 '22 03:09

Varun Bhatia