Autore Topic: Prima applicazione - problemi input variabile per array random  (Letto 700 volte)

Offline 0v3rl04d

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy note 3 N9005
  • Sistema operativo:
    Arch Linux
Prima applicazione - problemi input variabile per array random
« il: 27 Novembre 2012, 18:44:25 CET »
0
Ciao a tutti.

Come da titolo, questa è la mia prima app che dovrebbe essere un semplice test di un algoritmo (ricerca binaria). In pratica, data la dimensione dell'array, vorrei che cliccando sul tasto "Crea array" venisse appunto creato un array random. Una volta creato l'array vorrei che l'utente potesse inserire un numero da cercare.

Ovviamente è un app abbastanza inutile ma la sto facendo come per prendere dimistichezza con l'ambiente e il linguaggio.

Il mio problema è che non so come usare il valore intero inserito dall'utente (dimensione array).

Questa è la UI della mia app:



e questo è il MainActivity.java :

http://pastebin.com/Dn42717m

Questo è il metodo che crea l'array casuale di interi:

Codice (Java): [Seleziona]
private int []array= new int[R.id.dimensione];
   
    public void randomIntArray(View v) {
        int lungh= (R.id.dimensione)-1;
        for(int i = 0; i < lungh; i++) {
          array[i] = generatore.nextInt();
        }
       
      }

R.id.dimensione : dovrebbe esssere il valore del primo editText. Quello che io vorrei che fosse la dimensione dell'array.

Spero di essere stato chiaro.

Fra l'altro se avete suggerimenti, su guide da seguire per imparare a programmare, sono ben accetti. Io per ora ho acquistato il libro "Guida per lo sviluppatore di Massimo Carli" ma non mi sto trovando molto bene... Non arriva mai al punto.

API level: 17
min API level: 14
APK eseguito su dispositivo Android  4.0.4
« Ultima modifica: 27 Novembre 2012, 18:48:32 CET da 0v3rl04d »

Offline IacopoDeeNosee

  • Utente junior
  • **
  • Post: 128
  • Respect: +33
    • Google+
    • iacopodeenosee
    • Mostra profilo
    • visualhunter
  • Dispositivo Android:
    Samsung Nexus S - GT-I9023
  • Play Store ID:
    IacopoDeeNosee
  • Sistema operativo:
    Arch linux x86_64
Re:Prima applicazione - problemi input variabile per array random
« Risposta #1 il: 27 Novembre 2012, 20:25:46 CET »
0
sbagli nel richiamare i widget,non hai postato il file xml del activity/frangment ma credo che con queste correzzioni funzioni:
Codice (Java): [Seleziona]
EditText edtDimensione = (EditText) findViewById(R.id.dimensione);
private int []array= new int[Integer.valueof(edtDimensione.getText().toString)];

public void randomIntArray(View v) {
    int lungh= Integer.valueof(edtDimensione.getText().toString) -1;
    for(int i = 0; i < lungh; i++) {
    array[i] = generatore.nextInt();
    }
}
lo stesso lavoro lo devi fare per l'edittext della ricerca.8y3

Offline 0v3rl04d

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy note 3 N9005
  • Sistema operativo:
    Arch Linux
Re:Prima applicazione - problemi input variabile per array random
« Risposta #2 il: 27 Novembre 2012, 21:46:40 CET »
0
Ciao,

grazie per la risposta.

Ho provato a modificare come mi dicevi tu con qualche piccolo adattamento... ma sembra non andare...

ecco i metodi modificati:

Codice (Java): [Seleziona]
private static Random generatore = new Random();
    EditText edtDimensione = (EditText) findViewById(R.id.dimensione);
    int dim= Integer.valueOf(edtDimensione.getText().toString());
   
    private int []array= new int[dim];
   
    public void randomIntArray(View v) {
        int lungh= (dim)-1;
        for(int i = 0; i < lungh; i++) {
          array[i] = generatore.nextInt();
        }
       
      }
    EditText edtRicerca = (EditText) findViewById(R.id.ricerca);
    int cerca= Integer.valueOf(edtRicerca.getText().toString());
   
    public int ricercaBinaria(View v) {
            int inf = 0, sup = array.length - 1, x= cerca;
            if(sup == -1 || x < array[0] || x > array[sup]) return -1;
            while(inf <= sup) {
              int i = (inf + sup)/2;
              if(x < array[i]) sup = i-1;
              else if(x > array[i]) inf = i+1;
              else return i;
            }
            return -1;
          }

Ti posto il file activity_main.xml

http://pastebin.com/7V0rUNqX

e anche il mio LogCat (filtro app e error attivi):

http://pastebin.com/Us6dLx3Q

PS: hai qualche libro o guida da consigliarmi per imparare a programmare per android?

Offline IacopoDeeNosee

  • Utente junior
  • **
  • Post: 128
  • Respect: +33
    • Google+
    • iacopodeenosee
    • Mostra profilo
    • visualhunter
  • Dispositivo Android:
    Samsung Nexus S - GT-I9023
  • Play Store ID:
    IacopoDeeNosee
  • Sistema operativo:
    Arch linux x86_64
Re:Prima applicazione - problemi input variabile per array random
« Risposta #3 il: 28 Novembre 2012, 00:08:08 CET »
0
....
e anche il mio LogCat (filtro app e error attivi):
http://pastebin.com/Us6dLx3Q
hai qualcosa di nullo alla riga 120 di Mainctivity.java
Codice: [Seleziona]
Caused by: java.lang.NullPointerException
11-27 21:29:53.050: E/AndroidRuntime(21042):    at android.app.Activity.findViewById(Activity.java:1794)
11-27 21:29:53.050: E/AndroidRuntime(21042):    at com.unito.algoritmi.MainActivity.<init>(MainActivity.java:120)
Citazione
PS: hai qualche libro o guida da consigliarmi per imparare a programmare per android?
ho letto anch'io il primo libro di Carli e lo trovato ottimo per iniziare a fare qualcosa con android,in altri topic hanno accennato ad altri libri ma non saprei consigliartene.8y3