Saltar para conteúdo


Foto
- - - - -

Entrada de parâmetro vindo do EditText...


  • Por favor inicie sessão para responder
5 respostas a este tópico

#1 ggsd

ggsd

    Membro

  • Membros
  • PipPip
  • 25 mensagens

Mensagem publicada 08 October 2010 - 00:31

Olá pessoal, mais uma vez venho aqui para ver se algum amigo pode ajudar a essa alma já sem idéias quanto a esse assunto... :?: Rsrsrs...Seguinte, estou atualmente trabalhando em um protótipo que precisa receber um arquivo de áudio (formato .wav) para começar o trabalho em si (não vou entrar em detalhes pois senão a coisa vai longe e sai do foco).Pois bem, atualmente tenho um diretório chamado "raw" dentro da pasta "res" do projeto, e lá coloco o arquivo de áudio com o nome de "soundfile" e sem extenção.Ao rodar o sistema, mais especificamente ao apertar do botão que usa essa parte do protótipo, é invocado o seguinte código (onde "nome" é a chamada da função "nome"):nome(R.raw.soundfile);Ao rodar isso, a função "nome" é chamada. Sua declaração inicial é a seguinte:public boolean nome (int som) { ........ }Detro dela, dentre outras coisas, há o seguinte código:InputStream entrada = getBaseContext().getResources().openRawResource(som); try { tamanho = entrada.available(); som_byte = new byte[tamanho]; entrada.read(som_byte); entrada.close(); } catch (IOException e) { return false; }Pode-se notar que utiliza-se o "ImputStream" para pegar o arquivo de áudio e começar a trabalhar com ele, mas o que preciso é que tudo isso funcione da mesma forma mas só que com a interação do usuário!Explicando em miúdos: Possuo um EditText na tela do sistema que recebe o caminho de um arquivo de áudio digitado pelo usuário. Esse arquivo pode estar no sdcard por exemplo (o texto digitado pelo usuário ficaria "/sdcard/arquivo.wav"). Já fiz a captura desse caminho para uma variável dentro do sistema, da seguinte forma (onde "caminho_audio" é a setagem de id existente no .xml):private EditText caminho;...caminho = (EditText) findViewById(R.id.caminho_audio);Agora me falta conseguir fazer essa mudança que não há jeito de descobrir como seria!... Talvez nem seja complicado, mas estou mesmo sem conseguir proseguir no andamento do projeto aqui...Quem pudér ajudar, da forma que fôr, eu agradeço!Forte abraço a todos!-------------------------------------------------------------Estava olhando aqui para tentar fazer essa coisa funcionar, e cheguei a seguinte conclusão até agora:A entrada dos métodos é mesmo um int, ou seja, o R.raw.soundfile ele lê como se fosse um int. Na verdade, quando mando imprimir isso na tela pra ver o que vem, acaba aparecendo o caminho do arquivo (caminho completo). O que me deixou intrigado é q mesmo o campo sendo int, ele tem o caminho!Aí pensei assim: se tenho o caminho no EditText, posso até passar isso pra String, mas como faria pra passar para int?Uma vez como int acho q o resto funcionaria normalmente, mas como fazer esse caminho ficar dentro de uma variável do tipo int?!Alguém tem idéia?Abração!

#2 libre

libre

    Membro

  • Membros
  • PipPip
  • 32 mensagens

Mensagem publicada 08 October 2010 - 09:57

Nesse caso não há qualquer conversão de int para String ou outroo tipo, nem sequer a String está contida num int, tal seria praticamente impossível. O que ele faz é pegar no parâmetro int e ir aos Resources buscar o texto do elemento que tem essa id. Alguns métodos, como os setText() têm duas assinaturas, uma que passa directamente a String, outra que passa a id inteira do recurso que tem o valor a apresentar.myEditText.setText(String value); - Atribui o texto da String value ao objectomyEditText.setText(int resource_id); - Atribui o texto do recurso com a id de resource_id. O int não contem qualquer String, o método o que faz é pegar no int e ir aos resources buscar o elemento com essa id.

#3 ggsd

ggsd

    Membro

  • Membros
  • PipPip
  • 25 mensagens

Mensagem publicada 12 October 2010 - 17:59

Continuando o assunto...

#4 ggsd

ggsd

    Membro

  • Membros
  • PipPip
  • 25 mensagens

Mensagem publicada 12 October 2010 - 18:00

Nesse caso não há qualquer conversão de int para String ou outroo tipo nem sequer a String está contida num int, tal seria praticamente impossível. O que ele faz é pegar no parâmetro int e ir aos Resources buscar o texto do elemento que tem essa id. Alguns métodos, como os setText() têm duas assinaturas, uma que passa directamente a String, outra que passa a id inteira do recurso que tem o valor a apresentar.myEditText.setText(String value); - Atribui o texto da String value ao objectomyEditText.setText(int resource_id); - Atribui o texto do recurso com a id de resource_id. O int não contem qualquer String, o método o que faz é pegar no int e ir aos resources buscar o elemento com essa id.

Obrigado pelo retorno Libre.Realmente, estava tentando entender a lógica da coisa e vi que o que preciso na verdade é conseguir no id do caminho digitado no Edit Text, ou seja:O usuário digita (no EditText): /sdcard/teste.txtPreciso conseguir pegar o id do arquivo /sdcard/teste.txtO problema é q não entendi ainda como fazer para pegar esse id! Tentei adaptar o que você passou mas não consegui...Segue o que tenho no código do sistema:private EditText arquivo_origem;arquivo_origem = (EditText) findViewById(R.id.arq_origem);String teste;teste = arquivo_origem.getText().toString();Se fôr digitado "/sdcard/teste.txt" pelo usuário, a variável teste conterá "/sdcard/teste.txt", mas para que eu possa usar esse arquivo realmente, tenho de usar o identificador dele, ou seja, esse tal de id. Poderia dar mais uma luz pra que eu consiga resolver esse problema?Forte abraço!

#5 ggsd

ggsd

    Membro

  • Membros
  • PipPip
  • 25 mensagens

Mensagem publicada 12 October 2010 - 20:54

Aos amigos que estavam pensando nesse assunto (e em especial ao Libre que chegou a responder), agradeço a atenção mas de minha parte não há mais interesse em saber tais informações.Acabei resolvendo o problema com uma mudança que não mais usa esse ID...Obrigado pela força!Abração!

#6 libre

libre

    Membro

  • Membros
  • PipPip
  • 32 mensagens

Mensagem publicada 13 October 2010 - 13:14

Um esclarecimento: Se usas o caminho para o ficheiro do tipo "/sdcard/..." não terás qualquer tipo de resource id para ele, essas id's são só atalhos para ficheiros que vão junto no pacote do programa.Se vais usar ficheiros disponíveis na memória externa o melhor será recorreres a classes como File, InputStream, etc...Tens muito material sobre isso na documentação oficial:http://developer.and...l#filesExternal