Android :: Finalizing Cursor Error In Custom CursorAdapter
Sep 7, 2010
I have a cursor adapter and the logcat is filled with above errors, as soon as I click on a view. I am already releasing the CursorAdapter's cursor in onDestroy().Is there any way to get information about when the cursor was opened?
View 3 Replies
Jun 18, 2010
i'm getting a "Finalizing a Cursor that has not been deactivated or closed" error on this piece of code. The code is used to fill a list view. Since it's a non-fatal error , there is no crash and all seems to works fine..but i don't like the error. If i close the cursor at the end of this code..the listview stay's empty.if i close the cursor in onStop, i get the same error.
View 4 Replies
View Related
May 6, 2009
I am seeing the exception in 'adb logcat'.But I don't know if it is caused by my application or android platform.Can you please give me any idea how to troubleshoot this exception?
View 3 Replies
View Related
Jul 1, 2010
I have a ListActivity that uses a CursorAdapter to fill the rows in the view. I wrote a database helper class that gives me back results for common queries I make for my app, and it uses an SQLiteOpenHelper implementation I wrote to open the database. I use the open helper to open the database and get a cursor to pass to my CursorAdapter.
Here's a code snippet:
CODE:...................
The problem I'm having, that I didn't have before I implemented the open helper (before I just opened the database directly without a helper), is when I click on an item, which takes me to another activity, and then go back to this activity. When it initializes everything is fine, and my list is populated fine, but when I go back from the activity that follows, the list is empty and in the LogCat I see "Invalid statement in fillWindow()".
It appears from a few post I've seen that the reason is, when I requery the cursor, the database is closed. But I'm not closing it! I'm scratching my head on this one.
View 2 Replies
View Related
Aug 20, 2010
I'm watching this video http://www.youtube.com/watch?v=N6YdwzAvwOA and Romain Guy is showing how to make more efficient UI adapter code using the getView() method. Does this apply to CursorAdapters as well? I'm currently using bindView() and newView() for my custom cursor adapters. Should I be using getView instead?
View 1 Replies
View Related
Oct 31, 2009
I am building a custom listview used to list contacts from the contact cursor into a list with two text view for the phone number and name of the contact as well as a place for the images. I am getting a nullpoint error when i try to setText for my TextView Even though i checked the variable to see if they contained a string I have no ideas whats wrong with it. Code...
View 1 Replies
View Related
Oct 12, 2010
I'm experimenting with the Android platform, and I'm beginning to love it, but right now I'm stuck, at this cursor/list adapter problem-thing.
The thing is, that I request a function, returning a data object, with several properties I'd like to map to different TextView's.
My list_item.xml
CODE:...........
So what I would like to do is: Map a property of an array of objects to several fields in the file.
View 1 Replies
View Related
May 25, 2010
I have a Custom Cursor Adapter. It shows a list of installed applications with an icon, name and checkbox on each line item. I cache the list of applications in a database for faster retrieve and to store the state of the checkbox. However, I can't store the application icon in the db because sqlite doesn't support blobs. They list works rather well except that it is "janky" as described by Brad Fitzpatrick at Google IO (https://wave.google.com/wave/waveref/ googlewave.com/w+3kgmObZwO ). I'm trying to make my app non-janky by following the tutorial here: [url]... but I'm having trouble.
The reason my list is janky is because I look up each icon as you scroll down the list. drawable = pm.getApplicationIcon(c.getString(c.getColumnIndex(SmartLockDbAdapter.KEY_PACKAGE)));
getApplicationIcon takes too long to return to make for a smooth scrolling list. I would like to perform the action in the background with an AsyncTask but because bindView gets called repeatedly in a short time span, my icons end up with the wrong list item. I need help.
I've posted my whole ListActivity below in hopes that it helps other people. It's much harder to find an example of a working CursorAdapter then it is an ArrayAdapter.
CODE:........................
View 4 Replies
View Related
Aug 10, 2010
i am extending a CursorAdaptor and the first time that newview is called, i constantly come up with a cursor finalize error that i am having a difficult time tracking down.
Ill supply all of the info that i can, but i dont know where to start other than
CODE:....................
View 3 Replies
View Related
Feb 14, 2010
I think I've tried everything(made focusable:false!!) and I cant capture in anyway the selected checkbox on my list item. Even OnItemClickListener, doesn't respond to any click. How can I retrieve checked checkboxes in my list item? My list item included: image view, 4 textviews and the checkbox. Some code:
this is in my ListActivity class:
final String columns[] = new String[] { MyUsers.User._ID, MyUsers.User.MSG, MyUsers.User.LOCATION }; int[] to = new int[] { R.id.toptext, R.id.bottomtext,R.id.ChkBox, R.id.Location}; Uri myUri = Uri.parse("content://com.idan.datastorageprovider/users"); Cursor cursor = getContentResolver().query(myUri, columns, null, null, null); startManagingCursor(cursor); ListCursorAdapter myCursorAdapter=new ListCursorAdapter(this, R.layout.listitem, cursor, columns, to); this.setListAdapter(myCursorAdapter);
And this is my Custom Cursor adapter class:
public class ListCursorAdapter extends SimpleCursorAdapter { private Context context; private int layout; public ListCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to) { super(context, layout, c, from, to); this.context = context; this.layout = layout;
} @Override public View newView(Context context, Cursor cursor, ViewGroup parent) { Cursor c = getCursor(); final LayoutInflater inflater = LayoutInflater.from(context); View v = inflater.inflate(layout, parent, false); return v;
} @Override public void bindView(View v, Context context, Cursor c) { TextView topText = (TextView) v.findViewById(R.id.toptext); if (topText != null) { topText.setText("");
} int nameCol = c.getColumnIndex(MyUsers.User.MSG); String name = c.getString(nameCol); TextView buttomTxt = (TextView) v.findViewById(R.id.bottomtext); if (buttomTxt != null) { buttomTxt.setText("Message: "+name); } nameCol = c.getColumnIndex(MyUsers.User.LOCATION);
name = c.getString(nameCol); TextView location = (TextView) v.findViewById(R.id.Location);
if (locationLinkTxt != null) { locationLinkTxt.setText(name);
}
I've tried many ways. many listeners, can't figure how to capture listener to my checkboxes. The data I am binding to the list items from the database, isn't concerned about the checkbox.. only the textviews. There isn't any connection between the database and the checkbox I have in the list's item.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="100sp" android:focusable="false" android:focusableInTouchMode="false"> android:padding="6dip">
<ImageView android:layout_width="wrap_content"
android:layout_height="fill_parent" android:src="@drawable/icon"
android:id="@drawable/icon" android:layout_marginLeft="6dip"
android:focusable="false" android:focusableInTouchMode="false">
</ImageView> <LinearLayout android:id="@+id/LinearLayout01"
android:orientation="vertical" android:layout_width="1sp"
android:layout_height="fill_parent" android:layout_weight="1"
android:focusable="false" android:focusableInTouchMode="false">
<TextView android:id="@+id/toptext" android:layout_weight="1"
android:gravity="center_vertical" android:text="OrderNum"
android:singleLine="true" android:layout_height="0dp"
android:layout_width="wrap_content" android:focusable="false"
android:focusableInTouchMode="false">
</TextView> <TextView android:id="@+id/bottomtext" android:layout_height="wrap_content"
android:layout_width="wrap_content" android:focusable="false"
android:focusableInTouchMode="false" android:text="TweetMsg">
</TextView> <TextView android:id="@+id/twittLocation"
android:layout_weight="1" android:text="location" android:singleLine="true"
android:layout_width="fill_parent" android:layout_height="0dip"
android:focusable="false" android:focusableInTouchMode="false">
</TextView> <TextView android:layout_weight="1" android:id="@+id/twittLocationlink"
android:text="locationlink" android:gravity="fill_horizontal"
android:layout_width="fill_parent" android:layout_height="0dip"
android:focusable="false" android:focusableInTouchMode="false">
</TextView> </LinearLayout>
<CheckBox android:id="@+id/deleteTwittChkBox" android:text="Delete"
android:layout_width="wrap_content" android:layout_marginRight="2dp"
android:focusable="false" android:checked="false"
android:focusableInTouchMode="false" android:layout_height="fill_parent"></CheckBox>
View 4 Replies
View Related
Jun 29, 2009
I been using custom adapters based on the BaseAdapter and I usually populate my data at the getView() funtion.
Now I'm trying to write my custom adapter for my database cursor which now will be based on a CursorAdapter.
I'm getting confused where I should do the populating work? Along with how do I implement my inflating and populating "smart/efficient code based on RomainGuy presentation."
View 8 Replies
View Related
Oct 13, 2010
I've got a schedule Class, which is simply a custom ViewGroup (with custom onMeasure() and onLayout()), which enables me to place childs(=events) with LayoutParams for column/row start and column/row end. The number of childs and their LayoutParams depend on database entries.
Now I'm trying to add childs (events) from my database. I'd have to use a Cursor Adapter, so my schedule Class has to extend ListView, right? I tried that but the newView() method of the adapter is never called. Why not? My custom ListView doesn't ask the adapter for childs, no childs are added. I also can't add the childs by hand calling schedule.addView() if I extend from AdapterView.
How can I add events to the schedule with the data from the cursor?
View 1 Replies
View Related
Aug 23, 2010
I will try to be specific if I can - please be patient, first time asker and relatively new to programming on this platform. Apologies if this has been asked/answered before - please link it to me. I have searched up and down but find other unrelated (to me at least) problems.
The real puzzler for me is that my app is crashing on my emulator but when installed on my phone (via upload of apk to phone and then using an AppInstaller app from market) it works.
The crash comes from a NullPointerException at the numbered line in the following code snippet (my code) of a custom list cursor adapter.
CODE:....................
The following error dump is created.
CODE:..............
Curiously I have been happily programming and debugging away all day and out of the blue a long working and bug free portion of my app now throws up this error.
I suspect it might be a problem with the databases, but really not sure - nothing seems out of place there. Up until today I had a database with only one table - today I added a new table which also has a "_id" field as the name autoincrement key field, which I read in the docs was required for android list adapters (if memory serves). Having some experience in coding and some minor experience with databases, that seems like a bad idea to me but I am uncertain of if that is the problem and/or how else to do it.
The crash I am listing here does not display or make reference to the data in the other, new table. The cursor does not contain any query data from it. In fact if I rename the key field "_id" of the new table to something else (ie "_blah"), the crash remains.
Like I said, if I upload the apk to my phone, it works.
I have tried the following on the emulator:
- restarting adb (and eclipse) - no result
- uninstall from emulator - no result
- destory AVD profile and recreate - no result
I am developing this under the Android 2.1 SDK, and have been for the last few weeks. I have only ever had that SDK installed, I am yet to update to 2.2.
Not sure what else I can say here - hoping somebody here has experience enough to shed some light on it.
Without a fix to this, I can anticipate a very slow development process here on out (assuming I have to upload to my phone to test new code changes...).
View 3 Replies
View Related
Mar 29, 2010
The structure of some of my activities is a simple ListView with a custom CursorAdapter. The cursor is created in onCreate() on the activity from a SQLite database. The problem is that querying the SQLite database can be quite slow at times with lots of data (and let's assume I've already optimized the sql query as much as possible). Because it occurs in onCreate() on the UI thread, I get ugly black screens when opening the activity, which sometimes turn into ANRs, on a slow phone like the G1. I want to load the cursor in a background and show "Loading.." on screen while doing so. I saw AsyncQueryHandler used extensively in the framework, but this seems a solution geared more towards Content Providers and not application-local SQLite databases. I then thought of trying to load the cursor in a background thread, but realize that this might be problematic, as the CursorAdapter should be instantiated in onCreate() and should take a cursor as a parameter. The latest thought I had was to instantiate an empty MatrixCursor in onCreate() and pass that to the cursor adapter, while kicking off a thread/TimerTask to query the database. Then, on database cursor load, call cursorAdapter.change Cursor to the properly filled cursor. This doesn't seem very elegant and seems quite wasteful, however.
View 10 Replies
View Related
Mar 21, 2010
I get records from the system by quering a ContentResolver. I maintain the order of the items in the database. So I want to display the items in the order taken from my database.
How do I merge these two informations?
I am looking after an alternative way now. As what I ideally want is:
Get order of contacts by a custom order held in my database (this involves joining CR with my DB cursor, and doing an order by, later seams it's not possible with CursorJoiner) but there is more, if the join is not unique I want to sort by contact's name as last measure
Which is impossible using Cursor and Joiners, because of the missing feature of order bys, also I need to return a Cursor, as I will be using the in an ExpandableList
Also this translated to TSQL it would look like
select * from contactsdata
left join category on contactsdata.catid=category.id
order by category.pos asc, contact.display_name asc
So I am looking now after an alternative. I have in mind to load in a temporary DB table all data from CR, then do the query on the temporary table where I can join tables and do order bys? How does this sound to you?
View 1 Replies
View Related
Sep 24, 2010
Does the CursorAdapter run on a background thread and posts updates via the UI looper thread? If not what is the best pattern to load data asynchronously from a ContentProvider?
View 1 Replies
View Related
Dec 2, 2009
I am writing my own ContentProvider for my own application. And there is a ListView with a CursorAdapter pulling data from my Content Provider. My question is when there is a data change in my ContentProvider, how can I notify my CursorAdatper to requery the data and then have the ListView updated?
View 2 Replies
View Related
Oct 4, 2010
I was using some of the code from DeskClock and found that when I tried to modify the CursorAdapter that newView was getting called for each item. (I actually wanted to add a divider and it seems like adding the dividers separately is better than adding them into a single listView)
If I have 3 items I get the following behavior:
CODE:.............
I would've expected newView/bindView to be called once per cursor item. But, that doesn't seem to be the case. This was kind of a problem for me because I wanted to select the appropriate view depending on the cursor data, but since bindView could be called before newView that doesn't work.
Is this some odd recycler behavior (or somehow normal/expected)? Or is there something broken with the code (I removed everything except the ListView and it's still doing this)? I'm not quite sure why you would try to bind views that haven't been created, and why newView gets called on the first item twice.
If someone has an easy way of adding dividers to ListViews I'd love to know. I was going to try to dig through the contacts example to see how they did it there if not.
In case anyone's wondering MergeAdapter was neat to mess around with and try (I'll use it in some other situations). But, I did just end up writing a single adapter that handles multiple views. It computes the type of each item (which is small), stores it in a map, initializes it at adapter creation, and updates it in notifyDataSetChanged.
Then you just need to have getViewTypeCount() return the number of possible views. And getItemViewType to return the type from the map (which is 0 based, so 0-getViewTypeCount()). If you can compute your type from the position you don't need the map, but doing this on the fly wasn't possible so I just pre/recompute when needed.
View 1 Replies
View Related
Nov 19, 2010
I have a list view with 2 buttons on each row. I am using a cursoradpater to populate the list. I am also using the view holder pattern on newview() bindview().
My questions are: where do i put the clicklisteners for the buttons knowing that the action for the button is different from the action of the list item itself? Do i keep the onListItemClick ?
View 1 Replies
View Related
Nov 5, 2010
Does anyone tried to use CursorAdapter with old and new api?
Do you have some code examples of such solutions?
View 1 Replies
View Related
Oct 14, 2009
I have a CursorAdapter attached to a ListView, the ListView contains checkboxes for every row. When I check/uncheck a checkbox in a row it will update it to a 0 or 1 in the database (This is working fine) I also have another checkbox in the same Activity that when pressed will disable all the checkboxes in the ListView [ setEnabled(false) ].
The problem is that when I press this checkbox the ListView checkboxes return to their initial state when I started the activity. It does not matter the number of checkboxes I changed during the activity.
However, if I press the back button and then re-enter the activity all modifications are saved because the Cursor is refreshed. I am calling notifyDataSetChanged() at the end of the the methods that disables all the checkboxes.
I also tried this for every checkbox in the ListView but it did not work (was unable to check a checkbox) Any ideas?
View 4 Replies
View Related
Aug 16, 2010
I have a ListView backed by a custom adapter based on a CursorAdapter.The cursor I give it is based on a list of Notes in the database (each note is a DB row).Everything works just fine until I delete a note from the database. I'm not sure how to properly update the cursor/adapter/listview to display the new data.I've read conflicting posts on using adapter.notifyDataSetChanged() vs cursor.requery() to refresh the UI, but neither of them seems to work in this case.The only way I've been able to refresh it is by creating a new cursor from a new query and calling adapter.changeCursor(newCursor).Could someone demonstrate the proper way to update the backing data and then the UI (with psuedocode if possible).
View 2 Replies
View Related
Jul 25, 2010
I have a listactivity as a startup screen in my application. Which is displaying database records using custom cursor adapter. On create I set the filterable flag - getListView().setTextFilterEnabled(true)
My cursoradapter overrides runQueryOnBackgroundThread which runs corresponding query. The problem is that after typing some text and hitting enter, runQueryOnBackgroundThread never gets called. However, when the item click in the same view launches another activity(detail view of the record) and I come back to the original list activity, hitting back button, then text filtering works just fine. I don't call setTextFilterEnabled anywhere except during the initialization process and I can't really find any other API affecting this behavior, so any guesses why text filtering doesn't work initially, but all of the sudden starts working when I come back to the list activity from child activity?
View 3 Replies
View Related
Jul 1, 2010
I'm trying to clean up some code and now I'm determined to get this seemless ListView updating working...
I want my ListView to be updated when I call notifyDataSetChanged() but nothing happens... I'm also passing the autoRequery flag to true when creating my CursorAdapter.
Cursor c = FavoritesHandler.getCategoryFavorites(getSQLiteInstance(), category); m_favoriteAdapter.changeCursor(c); startManagingCursor(c);
View 6 Replies
View Related
Apr 3, 2010
My requirement was to invoke a alert dialog with a string text that gets modified dynamically when the user hits a button every time
for example:
string str="you have clicked "+ count + "times";
where count is an integer variable that gets incremented every time the user hits a button. and when i assign this string to the text of an alert-dialog ,i get the alert-dialog at runtime but with an empty text value...ie. a naked alert-dialog with just OK cancel button.
View 2 Replies
View Related
Feb 25, 2010
I have a made custom popup marker. There is a button on the popup that shows up when you click on a marker on the map. Its function is to open a new activity when the button is clicked. So in the onClick function of the setOnClickListener() call, I created a new object of the Activity class and used that to call the various methods that needs to start the activity but I keep getting a java.lang.NullPointerException thrown regarding the line that calls the startActivityForResult() method. Not sure of the best way to go about this. I have pasted a sample code...
View 8 Replies
View Related
Jul 7, 2013
i have clockwork mod recovery v6.0.1.0 and tried to flash Paranoid android 3.6 and then 3.57 both after wiping.
the screen says: Installing.....zip.
Finding update package
opening update pakcge installing update
assert failed: getprop ("ro.product.device")=="grouper" || getprop("ro.build.product")==grouper"
E:Error in ....(blah blah).zip
(status 7)
Installatio aborted.
View 1 Replies
View Related
Jun 16, 2009
I have a custom view that I had to write for a large scrollable image, as the images are larger than the size of the screen. Before, I had tried to do it by putting the image into a ScrollView but that of course didn't work. The view itself is within a RelativeLayout within the activity and at the bottom of the screen I have two buttons that are used for navigation and at the top a TextView with a caption for the activity (the main header is already being used here for instruction). In my below code, I've checked the Hierachy Viewer to confirm all the elements are loaded and in the Activity I can see the TextView, however it overlays the ZN5ScrollView area and below the image I just have a blank area of the size defined rather than my buttons. For the bottom navigation, the Hierachy Viewer is saying the absolute_y of the bottom navigation is 480. I'm wondering if anyone can help with my layout code here to get this working correctly? Bottom navigation is 50px high, ZN5ScrollView is 365px above the navigation, and the TextView takes up the rest of the area at the top
View 4 Replies
View Related
Oct 8, 2010
Since i switched over to UD x8 i have been having lower reception signal compared to before. Does anyone know a fix for this? or if this is normal? can it be the ROM or the kernel?
View 5 Replies
View Related
Mar 9, 2012
Last week, I played around with getting a custom recovery built for INQ Cloud Touch..
After compiling - flashing recompiling re-flashing for almost a week and on the verge of giving up ...
I realized, searched and found flash_image ... come to find out custom compile of recovery was fine, fastboot did not like my device and wasn't flashing it properly.
So flash_image got the custom recovery working as suppose to, able to backup/restore ... Flash roms.. however there are no roms.. best i could do was try roms from devices close to this one, with no luck!
So i decided i would try my hand at making a 2.3.7 gingerbread rom. Of course stock is froyo 2.2.1 and before i can make the rom.. i need a kernel for gingerbread. So I got the cm-kernel source using this guide:
[URL] .....
[EDIT]
pulled my .config file using both
/proc/config.tgz
and the included script to pull it from the boot.img
[/EDIT]
Now, i been trying to get kernel compiled for the last 5 days.. and like i said, no lack of searching and reading... Had first error, forgot what it was now, but i got it fixed and compile went on.
Code:
LD .tmp_vmlinux1
arm-eabi-ld: no machine record defined
arm-eabi-ld: no machine record defined
arch/arm/mach-msm/built-in.o: In function `parse_tag_msm_partition':
[Code] ......
I have a notepad full of things i have enabled/disabled and restored to original trying to find what is missing or shouldn't be there!
View 5 Replies
View Related