Invochiamolo!!! :O
MODERAAATOOOOREEEEEEEEE
Visualizzazione stampabile
Invochiamolo!!! :O
MODERAAATOOOOREEEEEEEEE
OK DOC/PROF ;D
codice:public class CalcolatriceActivity extends Activity{
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button pressButton = (Button) findViewById(R.id.BPiu);
final TextView outputView = (TextView) findViewById(R.id.widget33);
pressButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
EditText EditOne = (EditText) findViewById(R.id.Edit1);
String text = EditOne.getText().toString();
int i = Integer.parseInt(text);
if (text == "") {
outputView.setText("Devi inserire un numero");
}
else{
EditText EditTwo = (EditText) findViewById(R.id.Edit2);
String text2 = EditTwo.getText().toString();
int i2 = Integer.parseInt(text2);
if (text2 == "") { //** quì voglio gestire quando clikka su un operazione senza aver inserito niente
alert("testo");
}
else{
int somma = i + i2;
String s = new Integer(somma).toString();
outputView.setText(s);
}
}
}
});
Allora il problema è quando scrivi
se text è vuoto ( "" ) allora verrà sollevata una exception di tipo NumberFormatException.codice:String text = EditOne.getText().toString();
int i = Integer.parseInt(text);
Quindi prima di fare il parseInt devi mettere il controllo, puoi usare uno di questi a tuo piacimento:
Anche facendo ciò il problema persiste però, perchè se permetti di inserire un numero non parsabile da parseInt ( ad esempio viene inserito 12uff3 ) riceverai una bella NumberFormatException.codice:getText().toString().equals("")
getText().length() == 0
Per evitare anche questo, devi restringere l'input dell'editText nell' XML aggiungendo la propietà numeric, ad esempio:
codice:<EditText
android:id="@+id/Edit1"
android:numeric="integer|decimal" />
Non capisco Prof...allora se io metto quel controllo getText().toString().equals("");, prima du tutto a cosa lo applico?EditOne?
tipo EditOne.getText().toString().equals(""); lo sbatto dentro ad un if
if true then { cosa faccio per fau uscire l allert?}
else { tutto il codice di calcolo }
Allora..tu hai messo
if (text == "")
dopo il parseInt. Se il text è effettivamente vuoto, là non ci arrivi perchè parseInt solleva una exception quindi basta che fai:
codice:String text = EditOne.getText().toString();
int i = 0;
if( text == "" ) // o uno dei metodi che ti ho scritto sotto è indifferente
outputView.setText("Devi inserire un numero");
else
i = Integer.parseInt(text);
O una cosa del genere..dipende da cosa vuoi farci ^^
Ho copiato e incollato il code ma se non inserisco niente (nemmeno 0) in Edit1, e cliccko sul BPiù, mi da errore con chiusura forzata app