tintim_22 Posted September 27, 2012 at 10:47 AM Report #476752 Posted September 27, 2012 at 10:47 AM Boas ao pessoal do forum, preciso de um little help aqui já que ando aqui as voltas e não estou a conseguir, tenho um menu de opcoes e num "onMenuItemClick" tenho uma opcao de Edit para poder editar informacao, qual a melhor maneira de passar a informação para um novo quadro? Obg pela ajuda!
David Carpinteiro Posted September 28, 2012 at 07:42 AM Report #476884 Posted September 28, 2012 at 07:42 AM Boas, Podes usar um bundle para passar informação da activity actual, para uma nova onde irás editar a informação. Eis um exemplo de como podes fazer isso http://stackoverflow.com/questions/768969/passing-a-bundle-on-startactivity. Espero que ajude. David
tintim_22 Posted September 28, 2012 at 11:13 AM Author Report #476897 Posted September 28, 2012 at 11:13 AM @Alexandru obrigado pela dica, já a estava a explora-la, mas tenho uma duvida o intent+bundle so aponta para uma activity, certo? (pelo menos é o que eu ententdo) mas eu tenho varias activitys e queria que todas tivesse acesso à info... com a tua dica consigo ter?
David Carpinteiro Posted September 28, 2012 at 01:01 PM Report #476911 Posted September 28, 2012 at 01:01 PM Boas, Quanto à questão "intent+bundle so aponta para uma activity, certo?" Sim usas o bundle para passar a informação no intent, que por sua vez chama a activity. Quanto à outra questão. Se queres partilhar a informação por várias activities: Se a informação está sempre na mesma activity e esta é que gere qual a actividade a chamar, ai podes usar o bundle. Se a informação nem sempre parte da mesma activity, ou seja, o pedido para passar a informação pode partir de várias activities, ai podes usar uma opção no android que é sharedpreferences (http://developer.android.com/guide/topics/data/data-storage.html#pref) ou então, podes sempre criar a tua própria instancia de application e usares ela para partilhar essa informação por várias activities (http://stackoverflow.com/questions/4208886/using-the-android-application-class-to-persist-data). Já agora segue também um link a explicar a classe Application http://developer.android.com/reference/android/app/Application.html David
KTachyon Posted September 28, 2012 at 02:01 PM Report #476924 Posted September 28, 2012 at 02:01 PM (edited) Sendo a informação JSON até tens a vida muito facilitada. Do lado da primeira activity, quando for para fazer a passagem para a segunda activity: JSONArray stuff; // aquilo que queres enviar para a nova activity Intent i = new Intent(); Bundle b = new Bundle(); b.putString("identificador_de_item", stuff.toString()); // transforma o objecto JSON em String e enfia no bundle i.putExtras(b); //... inicialização e push Do outro lado activity que recebe a informação: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bundle b = this.getIntent().getExtras(); try { self.stuff = new JSONArray(b.getString("indentificador_de_item")); } catch (JSONException e) { // em caso de erro... não deve acontecer se fizeres o toString de um JSONObject/Array anteriormente } // ... restantes operações de inicialização } EDIT: Podes colocar globalmente, sim, mas não é propriamente a melhor forma de fazeres as coisas. Podes fazer isto trabalhando ao nível de classes e não de instâncias (static): class MyGlobalClass { private static JSONArray stuff; public static JSONArray getStuff() { return stuff; } public static void setStuff(JSONArray stuff) { self.stuff = stuff; } } stuff = MyGlobalClass.getStuff(); MyGlobalClass.setStuff(stuff); Edited September 28, 2012 at 02:06 PM by KTachyon “There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.” -- Tony Hoare
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now