android listview drag and drop and restore - android

I'm using the code from here:
http://ericharlow.blogspot.com/2010/10/experience-android-drag-and-drop-list.html
It's very useful to me, but I'm not sure how to make any change to the listview persist. At first the items in the listview are ordered A,B,C and after the drag and drop C, B, A
However if I quit this app and then restart it later the order goes back to A,B,C
I have the idea to use sql to save the listview id , so i can create table with id 1 2 3 which with content a b c in database , and then call to listview, so i can use the above code to drag , after i drag listview become c b a , but how to save the new sequences in database like id 1 2 3 with c b a ?
thanks

You don't necessarily have to use a sql database to accomplish this. Basically just save the data source for the listview whenever the activity is paused or stops. Then reload the data source when the activity starts up again. Look at this question for more information on how to do that: Saving Android Activity state using Save Instance State

Related

keep data retained of listview when switching between activities

i am struggling to keep data or items of list view when i leave one activity to another, for my example i created simple app on click will add number increased to a list view so each click create an item like 1 another click add 2 and so on.
the program works fin for main activity but then i would like to see the result on another activity i call it second activity but the problem is when i hit back button on second activity to go back to main activity, i will lose all of items on the list view.
i was looking on google so many information but could not get my head around it, so please advice and please be little more in detail as i am beginner, i think instance state or shared preference will do the job but i do not know any of them
thanks in advance and here is my app code for main activity and second activity and picture for output
sorry i add code as images becausethe site keep saying the code need indentation thank you
main activity[main out put][2]second activity[second activity out put][4]
You need to save the data of the ListView in some form, either in a file or in a database (local or remote).There is no direct way to store list view, but you can store the data from the list view and then set it in to the ListView later when you switch back to the activity.
You need to keep in mind that switching activity results to invoking of onPause() method in android, and if the data is not saved in the current activity then it will be lost when you move on to another activity.
Add all your values into the array, pass it to the adapter, then after clicking on the list view item, make an intent where you want to switch your activity (means from one activity to second activity), while implemented the intent, pass your array also, using intent.put extra. Then you will get your array in your second activity and coming back to your previous activity, again pass an intent (with your array) and get your array in your previous activity and pass it into the adapter.

send & save data to a List view in android

i want to create an app that have two activity's
the first activity have one EditText to write String on it & one Button to Send String that is in EditText
and activity two have one ListView to receive String from EditText & show it...
for example the ListView can show 20 String received from activity one
i have no problem with send strings between activity
but i don't no how to get them & put them to ListView to show!
if you know about send & save data to a List view please help me :)
sorry for my English
Thanks
You can't push 1 value to an Activity, start the activity, show a ListView, go back and add more. The second Activity will typically restart with a clean state.
Your options include
building an Arraylist of all the items, then starting the new Activity while passing that list
Use Fragments to achieve a similar task as (1), but the hosting Activity holds the list
Use persistent storage like Sqlite to store individual records, start the second activity whenever, and use a CursorAdapter to display the data to a ListView

Android: refreshing a listview from a 'grandchild' activity

I have a setup as follows
Activity 1 uses a ListView and ListAdapters to display information
from list of objects of type A (by retrieving from the database the first time its called).
Upon clicking an item in the ListView in Activity 1, the control goes
to Activity 2, which again uses a ListView and ListAdapters to display
information from list of objects of type B.
There is a '+' button in Activity 2, which when tapped switches the
control to Activity 3. Here I can create an object of type B and save it to the database.
Now I use the setResult() in Activity 3 and onActivityResult() in Activity 2 to update the list in Activity 2.
So far so good. I can see the item of type B that I just created in Activity 2.
Now if I press the back button and go back to Activity 1, and tap on
the same item of type A then when I go to the Activity 2, the item that I had just created
does not show. However when I close the app, and open it again, and
follow the same path, I can see that item. (As the list was reloaded from the database)
So how do I update the list in Activity 1?
I hope I explained my question properly (apologize if not!). I don't want to put all the code here, since there is no issue with the code, unless my approach is wrong.
Put your code which loads the list from database in Activity.onResume() method. This way it should execute every time your activity is restored from invisible state (take a look at the docs on activity lifecycle for more info).
Also, you might want to implement loading from database using Loader. It monitors the data source for updates, thus keeping data up to date.

modifying the listview with the result returned bu the another activity in android

i am very confused about how i should implement the following in my android application.
Let me explain the functionality that i want :
-i have a list view in my First Activity , say Activity A
-now , from this activity , i start another activity(activity B) with an intent for a result.
-with the result i get from the B, i want to update the listview in activity A.
-That is add an item in listview with the string returned.
i am thinking of, storing the items in array list and setting the array list to an array adapter to the listview.
now when the Activity B returns with a result i modify the arraylist and again set it to the listview.
i want to know, is it possible??
and also i have a question : when does the activity B returns?
so that in activity A's which methods(such as onResume(), onStart(), onRestart() ) should i write the logic for modifying the listview...?
i am very new to android development
Regarding your first question, I think you are on right track. You can just add the returned string to an ArrayList and then to the ArrayAdapter.
For your second question, you will get a clear understanding how it works, by seeing the activity flow diagram here: http://developer.android.com/reference/android/app/Activity.html

How to save android acvitiy history and retrieve at later time?

How do I save previous activity and have that update into a listview so that when a user launches the app at a later time he can click on a menu option called history which will bring a listview of the last few activities. Let's say the listview holds 5 activies and after the 5 activies it deletes the oldest activity saved and saves the new activity in it's place.
For example if someone wants to view history of an android activity that he viewed two days ago, he can simply click on a button called history and view his past 5 entries which will be displayed in a listview.
Any ideas?
You can't do it by default Android Activities method.
Just save state in onResume/onCreate (as file in filesystem or SharedPreference) and read it from yours History Activity.
Sorry for bad english)) Ask if don't understand something.

Categories

Resources