Autore Topic: Il context menu e 46 pulsanti  (Letto 534 volte)

Offline danko74

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Note
  • Sistema operativo:
    Windows 7
Il context menu e 46 pulsanti
« il: 07 Novembre 2014, 22:01:38 CET »
0
Salve,

scusate ma ho dovuto riaprire in qualche modo un post già chiuso poichè essendo ancora poco erudito quando mi imbatto in qualcosa di nuovo vado in panico.Sono riuscito a realizzare il codice per Condividere o salvare come suoneria un file Mp3.Ok ora però voglio adottare un Context Menu con due voci ovvie "Condividi" e "Salva come Suoneria" per ognuno dei 46 pulsanti.Ho implementato la struttura del Context così:
Codice (Java): [Seleziona]
@Override  
    public void onCreateContextMenu (ContextMenu menu, View v,ContextMenuInfo menuInfo) {
        //Diamo un nome al nostro menu :)
        menu.setHeaderTitle("Camma fà?");  

        //Aggiungiamo il nostro menu :)
        getMenuInflater().inflate(R.menu.menu, menu);
    }





ora però non riesco a capire come implementare il codice per far rispondere alle due voci del Context Menu di Salvare o Condividere il file mp3...ma un codice del genere andrebbe bene?Se si come potrei implementarlo nella struttura?La cosa sembra semplice a dirsi ma mi manca ancora molta preparazione e ho 46 pulsanti da soddisfare aiutatemi pls. :-[

Grazie

Codice (Java): [Seleziona]
public boolean onContextItemSelected(MenuItem item) {
if(item.getTitle()=="Salva come suoneria")

{
Toast t=Toast.makeText(SecondActivity.this,"File salvato in cartella Suonerie", Toast.LENGTH_LONG);
t.show();
File dest = Environment.getExternalStoragePublicDirectory(Envi ronment.DIRECTORY_RINGTONES);
InputStream in = getResources().openRawResource(R.raw.acasatoia);


try
{
OutputStream out = new FileOutputStream(new File(dest, "A casa toia.mp3"));
byte[] buf = new byte[1024];
int len;
while ( (len = in.read(buf, 0, buf.length)) != -1)
{
out.write(buf, 0, len);
}
in.close();
out.close();
}
catch (Exception e) {}


}
else if(item.getTitle()=="Condividi")

{

File dest = Environment.getExternalStorageDirectory();
InputStream in = getResources().openRawResource(R.raw.acasatoia);


try
{
OutputStream out = new FileOutputStream(new File(dest, "A Casa toia.mp3"));
byte[] buf = new byte[1024];
int len;
while ( (len = in.read(buf, 0, buf.length)) != -1)
{
out.write(buf, 0, len);
}
in.close();
out.close();
}
catch (Exception e) {}





final Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
shareIntent.setType("audio/mp3");
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(Environment.getExternalStorageDirectory( ).toString() + "/A Casa toia.mp3"));
startActivity(Intent.createChooser(shareIntent, "Condividi attraverso:"));


}

else {return false;}
return true;
}







});
« Ultima modifica: 07 Novembre 2014, 22:03:17 CET da danko74 »

Offline danko74

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Note
  • Sistema operativo:
    Windows 7
Re:Il context menu e 46 pulsanti
« Risposta #1 il: 08 Novembre 2014, 23:02:31 CET »
0
Ma nessuno ha una soluzione?Possibile?
Non sò proprio come risolverla sta cosa.... :'(

pietmau

  • Visitatore
Re:Il context menu e 46 pulsanti
« Risposta #2 il: 09 Novembre 2014, 08:59:30 CET »
0
Ciao,
Sfortunatamente il Context menu non fornisce informazioni sulla View che è stata cliccata poichè onOptionsItemSelected(MenuItem item) restituisce il riferimento all'item del menù selzionata e non alla vista.
Potresti attaccare un menù ad ogni bottone (orribile, ma probabilmente la soluzione più corretta) oppure potresti aggiungere un OnTouchListener ai tuoi bottoni in modo che tu sappia sempre quale è il bottone che è stato cliccato e reagire di conseguenza.
Non ho testato il tuo codice che salva/condivide.
Ciao!!!

Offline danko74

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Note
  • Sistema operativo:
    Windows 7
Re:Il context menu e 46 pulsanti
« Risposta #3 il: 09 Novembre 2014, 16:13:38 CET »
0
Grazie del consiglio ma stanotte ho fatto qualcosa di piu' orribile usando delle imagebutton su cui implementare OnClickListener...ma adesso l'ho caricato sul Play Store e quando si cerca di installarla da li il programma non si vede sullo smartphone..Lo store dice che è installata ma niente icona e niente "APRI" si puo' solo disinstallare...Ma che cavolo sarà successo????
Uffa ci ho perso ore!!! :(

Offline Aaaaabbbb

  • Utente junior
  • **
  • Post: 55
  • Respect: +3
    • Google+
    • pietmau
    • Mostra profilo
  • Dispositivo Android:
    Nexus 7, Samsung GT-S5830i, LG Optimus, Galaxy Tab 3
  • Play Store ID:
    aaaaaaaaaaaa
  • Sistema operativo:
    Win, Ubuntu
Re:Il context menu e 46 pulsanti
« Risposta #4 il: 09 Novembre 2014, 16:28:21 CET »
0
Haha,
interessante, evidentemete non parte nessuna activity :-)

Offline danko74

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Note
  • Sistema operativo:
    Windows 7
Re:Il context menu e 46 pulsanti
« Risposta #5 il: 09 Novembre 2014, 17:07:27 CET »
0
Suggerimenti?Ho controllato i file java delle activity e il Manifest...ma sembra tutto ok...sitauzione anomala comunque nemmeno in rete riesco a trovare la soluzione...funziona,fà quello che deve fare ma sta situzione strana che non posso lanciarlo se non collegato come AVM ad Eclipse mi manda in bestia!! >:(

Mauri' aiutami tu!

Offline Aaaaabbbb

  • Utente junior
  • **
  • Post: 55
  • Respect: +3
    • Google+
    • pietmau
    • Mostra profilo
  • Dispositivo Android:
    Nexus 7, Samsung GT-S5830i, LG Optimus, Galaxy Tab 3
  • Play Store ID:
    aaaaaaaaaaaa
  • Sistema operativo:
    Win, Ubuntu
Re:Il context menu e 46 pulsanti
« Risposta #6 il: 09 Novembre 2014, 17:36:39 CET »
0
Ciao,
Scusa una cosa non capisco, dici che gira solo sull' AVD,
ma quando lo installi sul telefono non gira,
mi viene da domandarti se l'hai testato con Eclipse sul telefono (capisco che stai usando Eclipse).

Ciao

Offline danko74

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Note
  • Sistema operativo:
    Windows 7
Re:Il context menu e 46 pulsanti
« Risposta #7 il: 09 Novembre 2014, 17:48:26 CET »
0
certo che l'ho testato sul telefono con Eclipse ma non mi crea icona,come del resto non la crea quando scarica dal Play Store mi dà solo Disinstalla nello store e nel telefono in Gestione Applicazioni...e come si lancia allora???

Offline Aaaaabbbb

  • Utente junior
  • **
  • Post: 55
  • Respect: +3
    • Google+
    • pietmau
    • Mostra profilo
  • Dispositivo Android:
    Nexus 7, Samsung GT-S5830i, LG Optimus, Galaxy Tab 3
  • Play Store ID:
    aaaaaaaaaaaa
  • Sistema operativo:
    Win, Ubuntu
Re:Il context menu e 46 pulsanti
« Risposta #8 il: 09 Novembre 2014, 18:24:05 CET »
0
Nel tuo Manifest dovresti trovare qualcosa come questo:

Codice (XML): [Seleziona]
<application
       android:name="com.bla.bla"
       android:icon="@drawable/ic_launcher"
       android:label="@string/app_name"
       <activity
           android:name="com.bla.MainActivity"
           android:label="@string/app_name">
     
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

Per piacere controlla che ci sia l'icona ;-)
e che ci sia l'intent filter.

Ciao

Offline danko74

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Note
  • Sistema operativo:
    Windows 7
Re:Il context menu e 46 pulsanti
« Risposta #9 il: 09 Novembre 2014, 18:40:25 CET »
0
Codice (Java): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.danko74.gomorrasounds"
    android:versionCode="7"
    android:versionName="1.6" >
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

   
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="16" />
       

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action
                    android:name="android.intent.action.MAIN" />
                <data android:mimeType="audio/mp3" />
                <category android:name="android.intent.category.LAUNCHER" />
               
            </intent-filter>
        </activity>
    <activity android:name="com.danko74.gomorrasounds.SecondActivity">
        </activity>

   

</application>

</manifest>

Questo è il mio Manifest...sembra ok no?

Offline Aaaaabbbb

  • Utente junior
  • **
  • Post: 55
  • Respect: +3
    • Google+
    • pietmau
    • Mostra profilo
  • Dispositivo Android:
    Nexus 7, Samsung GT-S5830i, LG Optimus, Galaxy Tab 3
  • Play Store ID:
    aaaaaaaaaaaa
  • Sistema operativo:
    Win, Ubuntu
Re:Il context menu e 46 pulsanti
« Risposta #10 il: 09 Novembre 2014, 19:13:43 CET »
0
Ciao,
Toglierei quell'
Codice (XML): [Seleziona]
<data android:mimeType="audio/mp3" />
Se ti serve un altro intent filter per la tua attività non è così che devi farlo ma devi aggiungerne un altro,
intanto decisamente toglierei quella riga.

Ciao!

Offline danko74

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Note
  • Sistema operativo:
    Windows 7
Re:Il context menu e 46 pulsanti
« Risposta #11 il: 09 Novembre 2014, 19:54:09 CET »
0
E tornata l'icona!!! :-o :-o :-o :-o


Sei un grande MAURI'!!!!

Effettivamente quella stringa è vecchia di alcuni tentativi e lo rimasta li....ora che ricordo è anche dichiarata nella funzione che implemento...forse faceva a cazzotti?!

Comunque ora rimetto in produzione l'App e ti faccio sapere

Grazie! ;-)