Invochiamolo!!!
MODERAAATOOOOREEEEEEEEE
Invochiamolo!!!
MODERAAATOOOOREEEEEEEEE
_Il passante, in quanto tale, passò
Devices:Nexus 4, Nexus 7, HTC Desire HD
Apps: WiMinimalFi --- Minimal Data Enabler --- SoliPiramide --- Sensors Explorer --- WiMinimalFi Pro
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); } } } });
_Il passante, in quanto tale, passò
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" />
Devices:Nexus 4, Nexus 7, HTC Desire HD
Apps: WiMinimalFi --- Minimal Data Enabler --- SoliPiramide --- Sensors Explorer --- WiMinimalFi Pro
Devices:Nexus 4, Nexus 7, HTC Desire HD
Apps: WiMinimalFi --- Minimal Data Enabler --- SoliPiramide --- Sensors Explorer --- WiMinimalFi Pro
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 }
_Il passante, in quanto tale, passò
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 ^^
Devices:Nexus 4, Nexus 7, HTC Desire HD
Apps: WiMinimalFi --- Minimal Data Enabler --- SoliPiramide --- Sensors Explorer --- WiMinimalFi Pro
Ferri (19-02-11)
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
_Il passante, in quanto tale, passò
Devices:Nexus 4, Nexus 7, HTC Desire HD
Apps: WiMinimalFi --- Minimal Data Enabler --- SoliPiramide --- Sensors Explorer --- WiMinimalFi Pro