TableLayout Vs Recycler View? - android

I am developing an android app which will allow users to create polls. A user can create a question and provide a set of options.
I wanted to provide a feature in which users can add or remove options dynamically.
I can't decide which layout would be best.
TableLayout - Each row can contain an option.
Vs
RecyclerView - Each item can be an option.
(Note that each option actually would be an EditText View where the user has to enter the option content.)
I have seen people generally use the RecyclerView for very large data sets but for my use case, a user can add a maximum of 5 or 6 options. Apart from that, I'll be using a recycler view to collect the data.
For such a use case, is it a good option to use the RecyclerView or something else?
Please provide suggestions

Definitely RecyclerView.
With a RecyclerView you can easily add and remove items dynamically.
Use the TableLayout if you have a static amount of rows (TableRow), that you declare in XML.

Use RecyclerView even if your rows are such little (5 or 6). By doing that, you will facilitate navigation for user with just one screen.

Related

RecyclerView vs Programmatically Created Views: Which one is better?

I want to put a list of items I am extracting from a firebase database. I was using RecyclerView for this but now I came to know that we can create Buttons, TextViews etc programmatically. I was wondering if there are any benefits of recyclerview or any special cases where it is preferable to use recyclerview.
Use RecyclerView, it is memory efficient. It does create view when it is visible and destroys it when it is not visible anymore, this way you can have infinite list without using a lot of resources.
Not bad thing to maintain view dynamically, But you need to know full concept of recycler view before taking the decision because there are lot's of aspect depend on when you are deciding to any component
Key aspects,
- Why you are using view?
- Is it sequential?
- All the data in the list are the same type?
- Also, How many records in the list if there is only tow-three record then no need to take the recyclerview.
Ultimately recyclerview is the optimized view for list out the item as a list,
Also, we suggest if your most of the data same type then take recyclerview don't do at dynamically, Because name self saying how recycler view (Recycle) will work

In Android, how can I make a form that changes depending on categories ? (the amount of inputs varies)

I'm doing a reminder application for Android that has an activity which is populated with inputs that depend on the category of the reminder. The amount of inputs (EditText) changes depending on the category, so im a little confused on how to tackle this case.
I propose 3 solutions here, but I'm not sure if there is a 4th solution or a better way to do it. I'm open to criticism. These are my choices:
I can make fragments for each category
Or I can make a common xml layout file that contains a number of inputs that reflect the category with most inputs, and find them programatically and assign them their properties
Or I can make the inputs programatically.
I'm trying to find the most elegant solution here. Thank you for your help.
What you can do is write all the inputs in one file,then set their visibility to hidden, and only programmatically change the visibility to show when you want it to. Tht way if you want to show three inputs, you can change the viibility of the three inputs and the rest of them would still be hidden, hence solving the issue.
Use some kind of adapter-based View. I recommend RecyclerView.
With it, you can covert your form objects into scalable View hierarchies in an elegant, efficient View, using an Adapter object.
You can use <include> to add your different screens and assign the visibility programatically

How to create listview and title (dynamically) in Android programmatically?

I am really confused, which among GridView, Tableview or multiple listview to be used to develop a UI as shown in below image.
I don't know how much list data (categories and its sub categories) is in web. It is dynamically added from wed, and sent to my android app.
Please suggest me, what view is best for developing above UI.
Note: I want to make it programmatically.
Thank you in advance for your co-operation.
Keep in mind that the image you have shown as an example is quite large and such an implementation would make for a cluttered UI on smaller screen sizes. That being said, the example you provided could be achieved in Android by using a GridView. Each major category (Automotive, Jobs, etc.) would be a grid item, with the sub element implemented as either a TextView or even a ListView within the grid item. Something like this:
As both #PedroHawk and #bryan mentioned, you could also use an ExpandableListView; in this scenario, the major categories (Automotive, Jobs, etc.) would be header items and the sub elements would be children of the header. Something like this:
However, with this implementation you would be limited to a one-dimensional list - that is you would not be able to have major categories next to each other as shown in your example.
With both of these implementations (ExpandableListView and GridView) you can dynamically add more elements as you receive data.
Like PedroHawk said, ExpandableListView is an option. But also consider because of the screen size, you may not want to try and port the UI directly over. What about a single ListView with just the main categories and the user can drill down?

Android Complex list of items in scrollview Best Practices

I´m developing an app in which I have a list of products, sometimes are a huge list and other times are only one or two items.
I read this items from a local database, right? ok, when I have about 20 o 30 items, I think the return is very slow, it takes one or two seconds rendering items and I need to know the best practices about that.
I have tested two ways:
The more tricky (I think), is creating views programmatically and adding to the scrollview as childs of the linearlayout inside.
The best for design: having an item-theme in a xml and inflating once by each item.
Is there a better way? I´m sure yes!
My items are a little bit complex:
image, name, category, provider, price, some buttons with "onclick" listeners, two little icons. Everything each item.
It is very important for me to speed up that process.
you can use listview and use the attr :
android:descendantFocusability=”blocksDescendants”
it can make your item widget respond some click or touch
My first thoughts on what you described are:
Create an xml layout for the listing
When you get the full list of items, store listing data somewhere
Inflate 5 (or 10 or whatever a reasonable amount of might be) listing layouts into the scroll view and use the data to fill them
Use a listener to check when the user has scrolled to the bottom of the scroll view... or halfway down or whatever you choose
Inflate the next set of items if they exist
This should prevent the slowdown and if you implement it correctly the user won't even know they aren't all loaded.
I think you need to implement a scroll view type to do this... do some searching for the scrollviewlistener.
It should be pretty straight forward.
I found the answer. Really cool.

Rows and Columns layout in Android Widget

Things are simple, I want to make a widget with 4 lines and 4 rows in it, on each cell there would be a click-able image and an action set by the user via the Settings page.
The layout is like this:
What layout element is recommended to be used for this scenario ? Should I use a GridView, TableLayout, more Linearlayouts ? Keep in mind that the spacing between items must be the same. I want to make it as light as possible. So, what layout ?
If I decide to use a GridView do you have any simple tutorial about
this? I can't manage to find a way of accessing the GridView from
AppWidgetProvider and set it's Adapter. Thank you.
LE: It seems that GridView is supported starting from Android 3.0.. please correct me if I'm wrong. In this case the only remaining thing to do is add 16 images and for each image add a onClickListener ? Brrr...
If you use a GridView then half of your work is done for you - The only layout and formatting elements you need to consider are on a Global (GridView) and Item level.
Using a GridView will also give your Scrolling functionality and the ability to change your row/columns count based on your device (4x4 on tablet, perhaps 2x8 on a phone).
Creating an extension of BaseAdapter to attach the Grid's children will also give you the flexibility to check items, multi select and will allow you to quickly modify the implementation in future by adding and removing items at will.
If this is simply a 4x4 grid which will always ALWAYS remain the same independent of device and each "Item" will always be the same, Use a RelativeLayout as it will be the most lightweight and efficient ViewGroup.

Categories

Resources