Visualizzazione stampabile
-
Quote:
Originariamente inviato da bisemanu
import java.util.Scanner;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MatriceANDActivity extends Activity {
Button Button1, Button2;
EditText valori, righeP, colonneP;
TextView Label1;
int i, j,m,p;
int[][] matrice1;
Scanner scanner = new Scanner(System.in);
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Label1 = (TextView)findViewById(R.id.textView3);
valori = (EditText)findViewById(R.id.valorimatrice);
righeP = (EditText)findViewById(R.id.righeprima);
colonneP = (EditText)findViewById(R.id.colonneprima);
Button1 = (Button) findViewById(R.id.dimensiona);
Button1.setOnClickListener(new OnClickListener(){
public void onClick(View arg0) {
int m = Integer.parseInt(righeP.getText().toString());
int p = Integer.parseInt(colonneP.getText().toString());
//Dimensiona la prima matrice
matrice1 = new int[m][p];
}
});
Button2 = (Button) findViewById(R.id.inserisciVal);
Button2.setOnClickListener(new OnClickListener(){
public void onClick(View arg0) {
//inzializza la matrice
for (i = 0; i < m; i++){
for (j = 0; j < p; j++){
Label1.setText("Elemento: " + i + " - " + j);
Label1.setText("\n");
matrice1[j] = scanner.nextInt();
}
}
//visualizzza la matrice
for (i=0; i<m; i++)
{
Label1.setText("\n ");
for (j = 0; j < p; j++)
{
Label1.setText(" " + matrice1[j]);
}
}
}
});
}
}
Questo è il codice che ho scritto per provare a vedere se riesco a dare la dimensione alla matrice e a inseriri i valori.
Ma sulla label non riesco a visualizzare nulla.
Perché continui a settare un nuovo testo... Metti tt su una variabile e alla fine lo metti sulla textbox
Inviato dal mio Nexus S usando Androidiani App
-
Non ci sto capendo piu nulla... credo cmq che il problema sia nell'inserimento dei valori nella matrice con la stringa matrice1[i][j] = scanner.nextInt();
-
Quote:
Originariamente inviato da bisemanu
Non ci sto capendo piu nulla... credo cmq che il problema sia nell'inserimento dei valori nella matrice con la stringa matrice1[j] = scanner.nextInt();
Quando visualizzi la matrice continui a settare un testo che si sovrascrive
Inviato dal mio Nexus S usando Androidiani App
-
Il problema è che non vedo proprio nulla sulla label quindi credo sia sbagliato il modo con cui prendo in input i valori della matrice.
-
Quote:
Originariamente inviato da
bisemanu
Il problema è che non vedo proprio nulla sulla label quindi credo sia sbagliato il modo con cui prendo in input i valori della matrice.
hai piu risolto?
-
no assolutamente, praticamente la parte di codice Java da portare in android è questa
int m = 4;//righe matrice
in p = 4;//colonne matrice
for (i = 0; i < m; i++){
for (j = 0; j < p; j++){
System.out.printf("Elemento: " + i + " - " + j);
System.out.printf("\n");
matrice1[i][j] = scanner.nextInt();
}
}
in java ad ogni pressione del tasto invio corrisponde l'inserimento nella matrice dei valori.
Sono arrivato a pensare che forse la soluzione sta in un array di button di dimensione m * p, bho essendo inesperto in questo ambiente sono completamente nel pallone.
-
Il tuo problema è che la versione Java/Console ferma il programma ad ogni attesa di inserimento, mentre usando una GUI non si può ragionare in questo modo ma bisogna ragionare per eventi.
In fase di inizializzazione avrai 2 variabili Riga e Colonna impostate a zero. Non ci sono cicli for, bensì una EditText ed un bottone di inserimento. Quando si scatena l'evento di pressione del bottone, prendi il valore contenuto nella EditText e lo carichi nella cella della matrice alle coordinate Riga,Colonna, poi incrementi il valore di Colonna e, se superi il numero di colonne lo riporti a zero ed incrementi Riga se quest'ultima supera il numero di righe significa che hai finito e puoi disabilitare il bottone e proseguire con l'elaborazione della tua matrice.
-
se ho capito bene ti riferisci ad una cosa del genere
Button2 = (Button) findViewById(R.id.inserisci);
Button2.setOnClickListener(new OnClickListener(){
public void onClick(View arg0) {
Label1.setText("Righe: " + Integer.toString(i) + " - Colonne: " + Integer.toString(j));
matrice[i][j] = Integer.parseInt(valori.getText().toString());
j++;
if (j == p){
j = 0;
i++;
} else if (i == m){
Button2.setEnabled(false);
}
}
});
sembra andare bene effettivamente tranne che non riesco a disabilitare il button
-
No, gli if di controllo devono essere nidificati, la variabile i va controllata solo dopo averla incrementata:
codice:
j++;
if (j == p)
{ j = 0;
i++;
if (i == m) Button2.setEnabled(false);
}
-
Grazie funziona benissimo!!!! :)