I am using a listview with a custom adapter. In my listview I am showing feeds, there is a option to like or dislike the post. On clicking listview item I am simply sending the arraylist and position in the DetailScreenActivity class. In the detail screen there is also the option to like or dislike the post.
Now suppose if the user likes the post in the detail screen and comes back, he still gets the post unliked in listview. May I know how could I manage this?
Thanks in advance...!
As you told that you are passing the array list with clicked position, now when user presses back then you have to pass your updated arraylist and update the adapter with this arraylist.
Related
I'm new to Android and can't quite figure out the right approach for the problem I'm trying to solve. I have an ExpandableListView with several items. Each item has an EditText, except the last item has a button. The contents of the EditTexts are to be loaded from the database. When the button is clicked or when the activity is navigated away from, I want to save the contents of each EditText to my database.
I'm not sure what to call from the activity's class, what to call from my adapter, and how exactly to access each item appropriately. Code is welcome but not necessary, I'm just looking for guidance on the general approach. Thanks.
I'd recommend putting a method in your adapter called saveAllValues. It iterates through the list of objects in the adapter and saves them to the database. Call this when your button is clicked and in your activity's onStop() method (which is called when the activity is no longer visible).
You should have your activity fetch the values for the item IDs in an AsyncTask in its onCreate method. Then pass the list of id/value pairs to the adapter in its constructor. It should maintain this list so it can go back through it and save the IDs and values to the DB.
Hope my answers in these links help:
Values of counter changes after scrolling ExpendableListView shows how to maintain the list inside the adapter and how to get list from the activity.
Remove the divider view in the expandablelistview last item shows how to make the last child different from the others.
In my android application, I have one spinner box and two edit text box for adding item.When I click on add button all the data will store in database and display in below Item list (listview display in my first image) by refreshing listview.
My problem is, when I click on add button at a time only one list is display and listview heading is also gone.
May be this problem is raised due to refreshing of listview.
I searched on google and found notifyDataSetChanged() method is used for refreshing list view but I don't know how notifyDataSetChanged() method is used in fragment?
Does anybody know how to use this method in fragment?
I am new to fragment. In my app all the java code is developed using fragment activity, and xml file is simple layout.(LinearLayout/RelativeLayout)
You can see my screen here:
1)First image show list heading.
2)Second image show List item.
You need to setAdapter again to your listview after adding new data. it will show new data int listview.
if not get, post your code where you setAdapter to listview.
You have to first add item in Arraylist/List which you passed in Adapter then after you can call below code..
adapter.notifyDataSetChanged();
listView.invalidateViews();
I'm building an android app and I'm trying to replace a list view with another list view if you click a button, like the notifications page on Instagram. On that page, if you click on the top "following" button it will show you a listview of what your followers have liked. If you click on the "you" button it will show you a listview of what people have liked your photos.
Any help would be greatly appreciated!
You can do it by following ways,
1. add Two listviews and can change the visibility as per your requirement.
2. On button click you can load the other data into same list view and can update your adapter in the same list view.
in 1 you have to load two list view at first which will consume more time if data is larger sure you can write a login in asynctask to load list views in background thread.
in 2 you have to update your adapter at the button so you will have to provide some progress bar of dialog for user while you list view is getting update.
You can use either of this whichever suites you best.
Simply , You don't need to switch Listview , you only need to switch adapters .
eg, you can switch to mFollowingAdapter when clicked on Following button and switch to mYouAdapter when you select "You" tab. that's it.
You should write a list, that has a custom adapter. This adapter will be able to display BOTH views you want to display.
If the data to be displayed is the same format (ie. both have an imageview next to a textview), you are in good shape.
When you want to switch to a different list, get the information you would like to display, replace the data in your the collection backing your list, then notify the list that the data has changed, and it should redraw.
So, this might look like:
create ArrayList() with data A
setup List, with this data and display
replace the ArrayList() with data B
call listView.notifyDataSetChanged
You can still do this if the Data A, and Data B have different views, in this case, you would need to handle this logic in your custom adapter.
I would like to open a listview by clicking on list items, which means when I need to show some categories in a list view and if I want that when I click on any of those categories then another listview should open with subcategories. And the same with working with subcategories, that when I click on subcategories then another listview should open with related sub-subcategories and viceversa.
Please tell me how can i do the above if i want same listview for all operations?
Thanks!
Seems like what you are trying achieve is a listview with a onItemClick, this question has been asked numerous times. Below are solutions to your question..
custom Listview Start new activity
How I can start a Activity if I click in A Item in a ListView
How to go to a particular activity on list item click?
ListView opens activity when Item is clicked?
Hope this help, since no one was able to answer your question.
I want to clera the listview item from the screen when pressing the clear all button. So I used the function m_adapter.clear(); It's clearing the items from the screen. But when I again coming back to the app after exit, those views again coming back. I need to clear them permanently. Can anybody help me in this problem?
Code snippet is as follows:
case R.id.deleteAll:{
m_adapter.clear();
}
If you really want to remove and clear your listview permanently your adapter.clear() will not work.
The actual meaning of this method is to clear your listview and not the listview items.
What you actually have to do is to remove all the elements from the array which you are using to populate the listview.
So this is the only way which will ensure you that your listview will not be loaded with data even when come back to your activity and getting out of it.
If not you will have to call your clear() each and every time you enter your activity, thus making it to look like as if there is not data present.
You'll need to clear the source of your listview data, then refresh the listview. That way, when you reopen the activity the data will not be redisplayed as it won't exist anymore.
Eg. If the listview is populated from a database, delete the data from the database, then refresh the listview.