Android :: Several Activities Sharing Common Code
Jul 2, 2010
I have an Android application composed by several Activities. Most of them need to check whether an active network is available or not:
public boolean isNetworkAvailable() {
ConnectivityManager cm = (ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
TelephonyManager tm = (TelephonyManager)
getSystemService(Context.TELEPHONY_SERVICE);
...
}
I would like to move that code to a helper class in order to avoid the need to write that code in every Activity, but calls to getSystemService are only allowed from an Activity. The other alternative is to move that code to a parent activity use inheritance but:
Every activity already extends from android.app.Activity
Some of my activities already extend from a common my.package.BaseActivity
(Activity <- BaseActivity <- XXXActivity)
What do you recommend in this case? Is there any other alternative?
View 1 Replies
Oct 7, 2009
I have an app with two activities.
Both activities among other functions have to perform the same calculation on data, so each activity include the same code to perform the calculation.
Is it possible to only have the similar code in a separate activity and be accessed by the other two activities instead of duplicating the code twice?
View 15 Replies
View Related
Jun 2, 2009
I am working on developing several individual android applications. We had created common UI Layout View XMLs, classes and resources. I would like to share these common layout xml, classes and resources across all of my android applications. I dont want to duplicate them in my applications. Is there any easy way to do this?
View 5 Replies
View Related
Jun 20, 2010
I have Activity A and Activity B. I want to access a method in Activity A from Activity B. This is my method:
Activity A extends activity{
public void save(){
} }
View 5 Replies
View Related
May 7, 2010
I have a set of common code (including .java files and resources), which I have to use for two similar applications with different package names (for different vendors). How can I maintain two packages which share the common code without making two copies of the common source?
View 3 Replies
View Related
Aug 31, 2009
I have done some cusomtizations on general user interface behavior. I would put those features into my applications. Therefore, I package my source code as a jar and add this external library to my applications.
As my cusomtization include some inflation of xml files, I put those resource in my package. However, when I finished compiled my application and ran it, it reports error. It seems cannot locate the xml file in the jar. (My debugger stop while inflate the xml file). Do I miss any step to use my jar file?
View 2 Replies
View Related
Sep 14, 2010
I'd like to bring out an Android app in the near future, so I was wondering how to support a couple of funcitonalities I have got used whilstdeveloping for J2ME and iPhone
first the versioning. With J2ME (using NetBeans as IDE) I had the option to auto-increment the softwwares version every time I compiled it. I was wondering if something like this is available for Eclipse and if so how to use it ? secondly a common code base. Is it possible to have a common code base for several projects ? For example I might have a game which actually uses the same code but needs different graphic resources. I'd hate to have a different project for every game/app and have to manually edit every project's source every time I want to submit a new code-change.
View 1 Replies
View Related
Apr 14, 2010
I am currently moving from Xcode and iPhone development to Android with Eclipse. I want to have a shared code project so that I can store all the code to be shared across apps in one common library. However it would appear that the only android project available is for applications and not for code libs how can i achieve this?
View 4 Replies
View Related
Apr 7, 2010
I was playing a bit with adapters cursors and activities. Let's assume i have a cursor containing a query I've made (it doesn't matter if it's to DB or content provider). Now lets assume i bind some of the data (first two rows) to a list activity. Every click on one of those items should open a new list activity (i pass on the cursor index in the activity bundle). Now the question is, which sharing method will be most efficient and right from code point of view ?
1. I thought of trying to send the cursor object in the intent itself (hoping it implemented runnable) but I'm not so sure it's that efficient since the query may contain many rows which will need to be parceled, and i the other intents uses only a few (say 4-5 columns of each row) it's a real waste.
2. Thought of trying to create the array list for my other list screen adapter and serialize it to the intent (again use serialize and intent to pass on the data) but again i fear for efficiency penalty.
3. my last solution was to use static cursor member in my first activity, with package permission, it will work and be relatively efficient, but I'm not so sure regarding memory efficiency and code structure, i'm not fond of using static variables in any case.
Is there another sharing method that i don't know off, if two activities share the same process and application, then they also share memory space, then it should be easy to pass variables from one to another, the question is what's the easiest way without serializing ?
View 6 Replies
View Related
Aug 10, 2010
I did some digging, but couldn't find a clear answer. I have an application with TabActivity as the main activity. I have some computing and network communication that needs to be done when user clicks on the big red jolly "DO IT" button. One tab hosts the form with "DO IT" button, while the other tabs display the results from computing (each tab displays different part of results). The computing is done as AsyncTask as it's supposed to be (afaik).
Now the question is, what is the best way to share the results between the tabbed activities? It can be done with ContentProvider + database from what I have read, although that seems like a bit too much for my needs. I have also considered an option to save the results to some cache file activities could read in onCreate, onResume etc and display the data. Are there any other convenient ways to share the data? (To make it more clear, the data aren't simple, so doing it through preferences etc is impossible.)
View 5 Replies
View Related
Mar 13, 2009
I was looking out for ways to share data between various activities that one may need to create for his applications . Using "Parcel" and Bundle one can do data exchange , but looks like this is a bit cumbersome process specifically if you have to share large array objects with too many fields.
As android.app.Application maintains global state for the application , we can use this class to store global data and access it across activities. Is this a good way ? Are there any implications on allocating large objects in the your class which extends from android.app.Application ?
View 6 Replies
View Related
Nov 21, 2010
I think the following scenario is common, but I can't figure the way to implement it:
We have three Activities, and one database. We ask the user for an input to search in the database. The query should get none, one or may results.
If you get none you simple inform the user.
If you get only one, you show it in a new activity with the right view.
If you get many you show them in a list to let the user to chose the right one and then you pass that to the activity which with show the data in the case of one result only.
The problem is that, in order to know the number of results, you need to do the query (and get the cursor) in the first activity. And in the case you get more than one result you need to send the data (pass the cursor?)to the list acitivty. Doing the query again in the list activity can't be right, right?
I'm aware that you can share cursors by using a content provider, but as the activities are from the same application and the data is private (useless outside), don't see the point of making it avaliable to anyone else.
I read here around that you can crate a parcelable cursor and send it in bundle, but I'm not sure if that is the right use.
View 1 Replies
View Related
Nov 24, 2010
I have a Weather app with four Activities. The main/launcher activity is 'invisible' using...
android:theme="@android:style/Theme.Translucent.NoTitleBar"`
Aand is simply used to do a few checks (whether this is a new install, whether a network connection is available etc) before firing off one of the other Activities. The other Activities are UI-oriented - two simply display weather data pulled from a website and the third to provide a location 'picker' so the user can choose which area to show the weather for.
However, all four activities make use of a WeatherHelper object which basically does everything from checking for available SD card storage to maintaining preferences and pulling/formatting website pages.
So, my question(s)...what is the best way to have one instance of WeatherHelper which can be used by multiple activities and where/how are best to create it in my case?
I've been an OO programmer for a lot of years but I'm very new to Android and the design concepts - I've read a lot on the Android Developers site over the past weeks but I've stalled trying to decide on this.
View 2 Replies
View Related
Aug 23, 2010
I am working on a small android project where it is necessary to share some data amongst several activities and a service that runs in a separate process. I would just like to know what are my options in terms of sharing data? Application class? IPC? File-based? Broadcasts?
View 3 Replies
View Related
Jun 24, 2010
I'm in the middle of writing myself an app and have run into a problem concerning the use of the same SQLite database within multiple activities.
I have one activity that is used to input and store data and multiple activities that need to then read that data. Within the first activity, it has no problem inputting the data into the database, but when I go to have the other activity read the data, it tells me the database is empty. Obviously I'm doing something wrong in my handling of this shared database.
Right now, I have a DataHelper class that handles everything. In each activity, I create a DataHelper object which then calls the openOrCreateDatabase() method. I then close the database upon exiting the activity. Obviously this isn't the right way to do it.
So, my questions is, what is the correct way to set up an SQLite database in an Android application and then access it in multiple activities?
View 7 Replies
View Related
Jan 11, 2010
I have written my application logic in domain objects (to enable multiple user interfaces and porting to other platforms), and am now lookng at implementing Activities for the user interface.
Considering that each activity needs to serialise its state, what is the best way to ensure my domain objects are only serialised once?
View 1 Replies
View Related
Jun 22, 2010
I have two activities that both contain an identical context menu built programmatically using menu.add(int, int, int, CharSequence). They both use onCreateContextMenu and onContextItemSelected.
The first Activity contains a ListView, when the user long presses on an item the context menu appears for that item. The second Activity (a detail screen for each item in Activity 1) contains a button, when the user presses the button the context menu appears.
I'd like to share the code that creates the context menu between these activities. The only thing these activities share is the context menu, so it seems like a bit of overkill to create a superclass (e.g., ActivityOne extends ContextMenuActivity) that defines onCreateContextMenu and onContextItemSelected methods.
Is there a better way of sharing these methods between activities?
View 2 Replies
View Related
Sep 15, 2010
I want to share streams of a socket connection between the activities of a tab view. In particular the tab activity creates the socket and gets the i/o streams,so i want that tabbed activities use these streams to retrieve informations without reconnect to the server each time i switch from a tab to another. I know i can use the application class to have a global state, but i don't know how.
View 4 Replies
View Related
Jul 22, 2009
I have been using SharedPreferences to share data between activities. But I would very much like to find a better way. I would simply like both Activity1 and Activity2 to share Object1. Activity1 will create Object1 and then start Activity2. What is the smartest way to give Activity2 a pointer to Object1?
To summarize: Activities don't have constructors! How do I send data to them from their parent activity?
View 17 Replies
View Related
Jun 23, 2010
I'm sharing some variables accross activities by using a class like this :
CODE:..........
Then I'm using these variables anywhere across my multiple activites with ...if (Globals.hint2_stockview_valuation == false) {....}
Pretty basic and it was working fine untill ...
I introduced some webview stuff like this:
CODE:...........
And here's the News_Webview.class:
CODE:............
The problem now is that, when it "comes back" from this Activity, it looks like my Globals variables have disappeared ?
if (Globals.hint2_stockview_valuation == false) {
fires an error :
06-23 12:14:03.443:
ERROR/AndroidRuntime(2611): Caused by:
java.lang.NullPointerException
2 Questions then:
Should I use something else than this "Global" class to share variables across activities ? Is it just bad practice to do this ?? I know that I can use the preferences but I thought it was quicker to do it this way (no need to "read" the preferences everytime I start a new activity ...Should I "get back" my savedInstanceState in some way when my activity returns from the News_Webview.class ?
View 2 Replies
View Related
Jul 24, 2010
I want to create a "main" service/application which will provide different functionalities to other applications. According to android docs I can use elements from an application/ service in other. "A central feature of Android is that one application can make use of elements of other applications (provided those applications permit it). ...". There is any examples/documentation on this direction? TicTacToeMain/TicTacToeLib example is not helping me because it seems "TicTacToeLib" will be embedded in final TicTacToeMain apk file. Also I want to ask if is possible to detect if "main" service/ application is missing (if is missing I want to tell user to install it, or to install it automatically).
View 2 Replies
View Related
Dec 22, 2009
Fred meets Bob at the pub and shows off the latest app he's installed.Bob likes it and wants to have it on his phone, too. Q: What's the best way for Fred to help Bob install an application? Hint: On a Palm, Fred would just 'beam' the app to Bob's pda (we're assuming that it's a freely downloadable app, not requiring payment or registration). On an Android phone, can Fred somehow share it over Bluetooth, or display a QR Code for the app so that Bob can use his Barcode Scanner to get it from the Market (or slimeme.org, or wherever)? As far as I know, no file manager has a "display barcode" function (like Contacts does when you have Barcode Scanner installed), so I'm forced to describe the app, or go into the application list and dig out its "com.vendor.app" name. This seems decidedly un-slick.
View 3 Replies
View Related
Oct 12, 2009
Can two or more Android Activities open an sqlite3 database for write?
I have two Activities that need to insert data into the same sqlite database. When the second Activity calls SQLiteOpenHelper.getWriteableDatabase() an IllegalStateException is thrown with the message "SQLiteDatabase created and never closed".
I've been able to avoid the Exception by making my database object a singleton but I'm thinking there must be a better way.
View 2 Replies
View Related
Aug 26, 2010
I have ten, possibly more, apps I'm developing that all share logic. 50-75% of the logic is the same - perfect for some time of library or code sharing. However, after reading the posts here and trying to share code in Eclipse, I'm not sure that's going to work. I tried going to project -> properties -> build path -> link source and adding the src and gen folders of the project with the shared code and then importing the classes I need. That seems to work in the IDE, but gives an error during runtime: class not found. This seems to be a common error for people attempting this.
I am slowly deciding that shared code is not the best approach in this scenario. Android doesn't seem to work well with this type of code sharing. For one thing resources are not packed in libraries, but references (R.whatever) must exist so as not to create errors. This can be designed around, but the effort and headache is probably worse than simply creating multiple copies. My experience seems typical, based on what I've read. Is it? Have you experienced success or failure with sharing code and/or custom libraries? Am I off-base in thinking that multiple code copies will be smoother sailing than fighting the shared code approach?
View 5 Replies
View Related
Nov 12, 2010
I've recently noticed that on both the HTC Magic (aka MyTouch) and Samsung Galaxy S it's possible to share contacts details via QR Codes.Both the aforementioned smartphones had the latest Barcode Scanner (by ZXing Software) installed. It's simply a matter of going into the address book, hit the menu button and select the "share contact as barcode". As a result, a fullscreen QRCode is displayed containing all the relevant details of the selected contact, ready to be scanned and saved by another smartphone.Now, why can't my Desire do the same?I have Barcode Scanner 3.51 installed, but the "share as barcode" options is nowhere to be found in my address book/contacts list.The only workaround I found is to share contacts directly from inside B.S., but (other than being slower) this method shows non-grouped contacts which is a PITA.Is this a Sense-related matter?What about yours?
View 4 Replies
View Related
Jul 15, 2010
Are Activities in the background considered "running" (and can execute code) or are they in a suspended state?
View 1 Replies
View Related
Apr 6, 2010
I've got a common task that I do with some Activities - downloading data then displaying it. I've got the downloading part down pat; it is, of course, a little tricky due to the possibility of the user changing the orientation or cancelling the Activity before the download is complete, but the code is there. There is enough code handling these cases such that I don't want to have to copy/paste it to each Activity I have, so I thought to create an abstract subclass Activity itself such that it handles a single background download which then launches a method which fills the page with data.
This all works. The issue is that, due to single inheritance, I am forced to recreate the exact same class for any other type of Activity - for example, I use Activity, ListActivity and MapActivity. To use the same technique for all three requires three duplicate classes, except each extends a different Activity.
Is there a design pattern that can cut down on the code duplication? As it stands, I have saved much duplication already, but it pains me to see the exact same code in three classes just so that they each subclass a different type of Activity.
Edit: Since it seems I need to be a bit more specific...
Suppose I'm trying to solve the problem of an AsyncTask background download during orientation changes. The solution I have right now is to use callbacks; there's download manager that I have which starts these downloads, and then I have the Activity attach a callback to it. When the orientation changes the Activity is destroyed and then recreated; during this process I detach the old Activity's callback, then attach a new callback from the new Activity afterwards.
Orientation changes are a common problem, and in multiple Activities I start the Activity with a progress view while the data loads. What I am trying to solve is not having to re-implement this orientation-handling logic ten times over; my initial solution was to subclass Activity, but then I got the problem above.
View 4 Replies
View Related
Sep 8, 2010
I'm moving away from strict Android development and wanting to create iPhone applications. My understanding is that I can code the backend of iOS applications in C/C++ and also that I can use the NDK to include C/C++ code in Android apps. My question however is how? I've googled quite a bit and I can't find any clear and concise answers.
When looking at sample code for the NDK, it seems that all the function names etc. are Android (or at least Java) specific and so I would not be able to use this C/C++ backend to develop an iPhone frontend?
I'd appreciate some clarification on this issue and if at all available some code to help me out? (even just a simple Hello World that reads a string from a C/C++ file and displays it in an iOS and Android app).
View 1 Replies
View Related
Sep 19, 2012
I have my Google account also setup on my wife's phone so we can share purchased apps. However, everything else is shared too. For example, even though I have sync for everything on my account turned off, my calendar still showed up on my wife's phone until I disabled it in the calendar app. Also, I can't remove my Google Talk account from her phone so my messages show up on her phone.
This is on a pair of stock Samsung Galaxy S3 phones.
View 2 Replies
View Related
Jun 30, 2010
how to call BarCodeScanner, and return the value to a field.so now, i have a toast that says "successful scan" and then i want to pass the result to a new activity. when i comment out my intent, everything works (minus the passing of data/switching of screen, obviously) but when i run my project as is, it FC's no errors reported by eclipse in code or xml. any insights?
View 2 Replies
View Related