Autore Topic: impossibile fare il parse..quindi?  (Letto 485 volte)

Offline frecciak

  • Utente normale
  • ***
  • Post: 231
  • Respect: +16
    • Mostra profilo
  • Dispositivo Android:
    galaxy s
  • Sistema operativo:
    windows 7
impossibile fare il parse..quindi?
« il: 19 Gennaio 2012, 00:44:35 CET »
0
è tutto il giorno che scripto e ormai ho il cervello fuso..mi sa che mi son perso in una cavolata, ma proprio non mi viene la soluzione..
sto creando delle variabili per autoimpostare alcuni dati della fotocamera in questo modo:
Codice (Java): [Seleziona]
 int constCamcorderProfile =(CamcorderProfile.QUALITY_HIGH);
  CamcorderProfile camcorderProfile= CamcorderProfile.get(constCamcorderProfile);
int audiobitrate=Integer.parseInt(String.valueOf(camcorderProfile.audioBitRate));
int audiosamplerate = Integer.parseInt(String.valueOf(camcorderProfile.audioSampleRate));
int fileformat =Integer.parseInt("MediaRecorder.OutputFormat."+getFileFormat(camcorderProfile.fileFormat)); // qua da l'errore
// poi le imposto cosi:
             mediaRecorder.setAudioEncodingBitRate(audiobitrate);
             mediaRecorder.setAudioSamplingRate(audiosamplerate);
             mediaRecorder.setOutputFormat(fileformat);
in fileformat mi dice che è impossibile fare il parse, e mi sembra anche giusto...ma se lo metto come String, eclipse mi da errore
in questa riga:
mediaRecorder.setOutputFormat(fileformat);
perchè String non è accetabile...
quindi come posso risolvere?
Se le risposte ti hanno aiutato, metti un ..a te non costa nulla, ma a chi ti ha aiutato fa molto piacere riceverlo!!

Offline teskio

  • Moderatore globale
  • Utente normale
  • *****
  • Post: 387
  • Respect: +118
    • Github
    • Google+
    • Mostra profilo
    • Skullab
  • Dispositivo Android:
    Cubot GT99 / SurfTab Ventos 10.1
  • Play Store ID:
    Skullab Software
  • Sistema operativo:
    windows 7 / ubuntu 12.04
Re:impossibile fare il parse..quindi?
« Risposta #1 il: 19 Gennaio 2012, 07:41:41 CET »
+1
Codice (Java): [Seleziona]
int fileformat =Integer.parseInt("MediaRecorder.OutputFormat."+getFileFormat(camcorderProfile.fileFormat));OMG !  :-o

Forse è il caso di studiare un pochino di più  :-)

Integer (Java 2 Platform SE v1.4.2)

Vedrai che se leggi bene la documentazione capisci da solo l'errore

Offline frecciak

  • Utente normale
  • ***
  • Post: 231
  • Respect: +16
    • Mostra profilo
  • Dispositivo Android:
    galaxy s
  • Sistema operativo:
    windows 7
Re:impossibile fare il parse..quindi?
« Risposta #2 il: 19 Gennaio 2012, 17:03:39 CET »
0
l'errore pensodi averlo capito...è la soluzione che mi manca ;D
per ora ho risolto con un'altro metodo..ma sta cosa mi manca..
Se le risposte ti hanno aiutato, metti un ..a te non costa nulla, ma a chi ti ha aiutato fa molto piacere riceverlo!!

Offline teskio

  • Moderatore globale
  • Utente normale
  • *****
  • Post: 387
  • Respect: +118
    • Github
    • Google+
    • Mostra profilo
    • Skullab
  • Dispositivo Android:
    Cubot GT99 / SurfTab Ventos 10.1
  • Play Store ID:
    Skullab Software
  • Sistema operativo:
    windows 7 / ubuntu 12.04
Re:impossibile fare il parse..quindi?
« Risposta #3 il: 19 Gennaio 2012, 18:37:36 CET »
0
Che cosa ti manca ? La documentazione parla molto chiaro  :-)

Codice: [Seleziona]
public static int parseInt(String s)
Parameters:
    s - a String containing the int representation to be parsed

La stringa deve contenere la rappresentazione dell'intero !
Quindi :
Codice (Java): [Seleziona]
// Questo è il metodo corretto
int myNumber = Integer.parseInt("154") ;
// Questo è errato ! Poichè "pippo" non è un numero intero !
int myNumber = Integer.parseInt("pippo");

Non solo, tu hai provato a passare al metodo parseInt un riferimento sotto forma di stringa !
"MediaRecorder.OutputFormat."+getFileFormat(camcorderProfile.fileFormat)
Questo è un'ulteriore errore concettuale nella programmazione Java.

Quindi, non prenderla male, ma dovresti studiare un po' di più la programmazione Java  ;-)

Offline frecciak

  • Utente normale
  • ***
  • Post: 231
  • Respect: +16
    • Mostra profilo
  • Dispositivo Android:
    galaxy s
  • Sistema operativo:
    windows 7
Re:impossibile fare il parse..quindi?
« Risposta #4 il: 20 Gennaio 2012, 03:45:16 CET »
0
Che cosa ti manca ? La documentazione parla molto chiaro  :-)

Codice: [Seleziona]
public static int parseInt(String s)
Parameters:
    s - a String containing the int representation to be parsed

La stringa deve contenere la rappresentazione dell'intero !
Quindi :
Codice (Java): [Seleziona]
// Questo è il metodo corretto
int myNumber = Integer.parseInt("154") ;
// Questo è errato ! Poichè "pippo" non è un numero intero !
int myNumber = Integer.parseInt("pippo");

Non solo, tu hai provato a passare al metodo parseInt un riferimento sotto forma di stringa !
"MediaRecorder.OutputFormat."+getFileFormat(camcorderProfile.fileFormat)
Questo è un'ulteriore errore concettuale nella programmazione Java.

Quindi, non prenderla male, ma dovresti studiare un po' di più la programmazione Java  ;-)
purtroppo non ho alcuna base di java..mi sono studiato un po di cose, poi le altre le affronto man mano che mi si presentano..e penso con risultati abbastanza decenti..
però come hai visto in quetso post, non avere le basi crea grossi problemi :(
cmq le cose che mi hai fatto notare, le avevo capite...quella che ho postato era una delle tante prove fatte in preda alla disperazione ^^
le prove le ho fatte perchè
qua dove metto i puntini:
mediaRecorder.setOutputFormat(..........);
mi chiede un'int, ma quello che devo metterci (MediaRecorder.OutputFormat.MPEG_4) lo riesco a ricavare solo come stringa..e anche leggendo le documentazioni non riesco a capire come poter risolvere :(
Se le risposte ti hanno aiutato, metti un ..a te non costa nulla, ma a chi ti ha aiutato fa molto piacere riceverlo!!

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:impossibile fare il parse..quindi?
« Risposta #5 il: 20 Gennaio 2012, 08:36:28 CET »
0
MediaRecorder.OutputFormat.MPEG_4 è una variabile.
se te tra parentesi scrivi il testo cosi com'è, senza "" allora te lo prende, perchè è una variabile con quel nome, e con un valore intero assegnato.
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline Giovanni D'Addabbo

  • Utente normale
  • ***
  • Post: 163
  • Respect: +8
    • Google+
    • giovannid
    • giovanni.daddabbo
    • magoscuro
    • Mostra profilo
    • Rhubbit.it - Sviluppo app Android/iOs
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Rhubbit srl
  • Sistema operativo:
    Windows/Mac/Linux
Re:impossibile fare il parse..quindi?
« Risposta #6 il: 20 Gennaio 2012, 11:52:33 CET »
0
purtroppo non ho alcuna base di java..mi sono studiato un po di cose, poi le altre le affronto man mano che mi si presentano..e penso con risultati abbastanza decenti..
mah...e se invece di sbattere la testa sui problemi e imparando invertissi il processo semplicemente imparando e sbattendo la testa su altri problemi? :)

Io ti consiglio la lettura di questo libricino: Learn Java for Android Development: Amazon.it: Jeff Friesen: Libri in altre lingue

Prima pensare, poi agire altrimenti si rischia solo di sprecare tempo

bye bye