Autore Topic: aprire sezione menu android da button  (Letto 1524 volte)

Offline gianlucasaroni

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Google+
    • gianlucasaroni
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Play Store ID:
    Gianluca Saroni
  • Sistema operativo:
    Mac OS X 10.7.3
aprire sezione menu android da button
« il: 26 Maggio 2011, 11:59:50 CEST »
0
Salve ragazzi, premetto che sono agli inizi,
non riesco a capire come fare ad aprire "Account & Sync" direttamente dalla mia applicazione, qualcuno può aiutarmi?

Grazie,
Gianluca

Offline ALEX88-ANDR0!D

  • Utente normale
  • ***
  • Post: 173
  • The Special One
  • Respect: +13
    • Google+
    • droidev88
    • Mostra profilo
  • Dispositivo Android:
    HTC DESIRE HD
  • Sistema operativo:
    WINDOWS 7
Re:aprire sezione menu android da button
« Risposta #1 il: 26 Maggio 2011, 18:55:26 CEST »
+2
ciao, ti do il benvenuto visto che è il tuo primo :-)  post

riguardo il tuo problema ,
per accedere dentro il menu impostazioni ...accaunt e sincronizzazioni dalla tua app devi inserire questo codice

Codice (Java): [Seleziona]
Intent configIntent = new Intent(android.provider.Settings.ACTION_SYNC_SETTINGS);
                                   configIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                                   startActivity(configIntent);

dentro un button all'interno del file .java che contiene la schermata con il tuo pulsante ... 

quindi il cod del pulsante finito diventerebbe così
Codice (Java): [Seleziona]
// Bottone che permette di visualizzare la schermata accaunt e sync di android
                Button cliccami = (Button) findViewById(R.id.button1);
                cliccami.setOnClickListener(new OnClickListener() {

                        @Override
                        public void onClick(View arg0) {
                                // Andiamo in modo esplicito alla  pagina
                                                       //accaunt e sync di android
                                                               
                                Intent configIntent = new Intent(android.provider.Settings.ACTION_SYNC_SETTINGS);
                                   configIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                                   startActivity(configIntent);
                               
                        }


                });


giusto per chiarire ulteriormente le cose dovresti avere un codice simille a questo nel tuo .java che contiene il pulsante
Codice (Java): [Seleziona]
package it.alex.prova.auito.proj;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class esempio1 extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
   
     // Bottone che permette di visualizzare la schermata accaunt e sync di android
                Button cliccami = (Button) findViewById(R.id.button1);
                cliccami.setOnClickListener(new OnClickListener() {

                        @Override
                        public void onClick(View arg0) {
                                // Andiamo in modo esplicito alla  pagina
                                                       //accaunt e sync di android
                               
                                Intent configIntent = new Intent(android.provider.Settings.ACTION_SYNC_SETTINGS);
                                   configIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                                   startActivity(configIntent);
                               
                        }


                });

    }
}

ovvio che la parte relativa agli id
Codice (Java): [Seleziona]
Button cliccami = (Button) findViewById([color=red]R.id.button1[/color]); varia in base all'id  specificato  quando hai creato il pulsante nell .xml del progetto (nel mio caso era button1
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   >
    <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="pulsante per accaunt e sing"></Button>
</LinearLayout>

, magari nel tuo caso è button2 oppure Button01 ecc... .

spero di esserti stato di auto , se hai qualunque dubbio ancora o altre domande scrivi pure ...  ciao Alex88-ANDR0!D
« Ultima modifica: 26 Maggio 2011, 18:57:58 CEST da ALEX88-ANDR0!D, Reason: alcune correzioni e aggiunte. »
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline gianlucasaroni

  • Nuovo arrivato
  • *
  • Post: 14
  • Respect: 0
    • Google+
    • gianlucasaroni
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Play Store ID:
    Gianluca Saroni
  • Sistema operativo:
    Mac OS X 10.7.3
Re:aprire sezione menu android da button
« Risposta #2 il: 27 Maggio 2011, 09:09:54 CEST »
0
Grazie mille ALEX88-ANDR0!D,  ;-)

Offline Diego Stamigni

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Google+
    • diegostamigni
    • diego.stamigni
    • diegostamigni
    • Mostra profilo
    • Iside
  • Dispositivo Android:
    Galaxy Neuxs, Galaxy Note, Transformer Prime
  • Play Store ID:
    Diego Stamigni
  • Sistema operativo:
    Mac OS X, GNU/Linux
Re:aprire sezione menu android da button
« Risposta #3 il: 27 Maggio 2011, 09:11:02 CEST »
0

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   >
    <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="[b]pulsante per accaunt e sing[/b]"></Button>
</LinearLayout>

Accaunt e Sing, bello!
Diego Stamigni
Software Engineer:  AreaMobile - Iside

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:aprire sezione menu android da button
« Risposta #4 il: 27 Maggio 2011, 09:43:13 CEST »
0
Accaunt e Sing, bello!

Ti sembrava necessaria questa puntualizzazione?

Offline Diego Stamigni

  • Nuovo arrivato
  • *
  • Post: 16
  • Respect: 0
    • Google+
    • diegostamigni
    • diego.stamigni
    • diegostamigni
    • Mostra profilo
    • Iside
  • Dispositivo Android:
    Galaxy Neuxs, Galaxy Note, Transformer Prime
  • Play Store ID:
    Diego Stamigni
  • Sistema operativo:
    Mac OS X, GNU/Linux
Re:aprire sezione menu android da button
« Risposta #5 il: 27 Maggio 2011, 09:59:02 CEST »
0
Ti sembrava necessaria questa puntualizzazione?

Ok:

@gianlucasaroni:

1) Non usare il setOnClickListener, ma nel'xml del layout nel widget Button usa android:onClick facendo riferimento al metodo nella classe che come argomento deve avere una view:

Codice (XML): [Seleziona]
....
android:onClick="accountSync"

Codice (Java): [Seleziona]
public void accountSync(View v) {
      startActivity(new Intent(android.provider.Settings.ACTION_SYNC_SETTINGS));
}

2) Evita di implementare cose di cui non hai bisogno, questo è uno dei punti focali sempre sottolineati da Google:

Citazione
There are two basic rules for writing efficient code:

Don't do work that you don't need to do.
Don't allocate memory if you can avoid it.

Mi riferisco chiaramente a:

Codice (Java): [Seleziona]
*.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Se non ne hai bisogno, non aprire un nuovo task nello stack; ti rimando alla documentazione ufficiale per chiarimenti sulle flags a disposizione (Intent | Android Developers).
Diego Stamigni
Software Engineer:  AreaMobile - Iside

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:aprire sezione menu android da button
« Risposta #6 il: 27 Maggio 2011, 10:36:12 CEST »
0
1) Non usare il setOnClickListener, ma nel'xml del layout nel widget Button usa android:onClick facendo riferimento al metodo nella classe che come argomento deve avere una view:

Codice (XML): [Seleziona]
....
android:onClick="accountSync"

Codice (Java): [Seleziona]
public void accountSync(View v) {
      startActivity(new Intent(android.provider.Settings.ACTION_SYNC_SETTINGS));
}

Credi ci siano dei benefici?
Io credo solo che ti perdi un pochino il senso di separazione tra vista e logica applicativa senza significativi benefici in termini di perfomance.
Anzi probabilmente perdi qualcosina per via del fatto che ogni volta che clicchi il sistema deve andare a trovare tramite reflection il metodo che deve chiamare
« Ultima modifica: 27 Maggio 2011, 10:43:51 CEST da Ricky` »