Ich bin neu in Android Studio und habe eine Taschenrechner-App, die ich arbeite. Gerade jetzt, wenn ich durch Null dividiere, bekomme ich natürlich die Fehlermeldung "Infinity", aber was, wenn ich es ändern wollte, um zu sagen: "Konnte nicht durch Null teilen", wie würde ich darüber gehen?Android-Rechner Fehlermeldung beim Teilen von 0
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class Divisionpage extends AppCompatActivity implements View.OnClickListener {
private Button btnDiv;
private TextView AnswDiv;
private EditText Divt1, Divt2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_divisionssida);
init();
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}
private void init() {
btnDiv = (Button)findViewById(R.id.btnDiv);
AnswDiv = (TextView)findViewById(R.id.AnswDiv);
Divt1 = (EditText)findViewById(R.id.Divtal1);
Divt2 = (EditText)findViewById(R.id.Divtal2);
btnDiv.setOnClickListener(this);
}
@Override
public void onClick(View v) {
String num7 = Divt1.getText().toString();
String num8 = Divt2.getText().toString();
switch (v.getId()){
case R.id.btnDiv:
try {
float division = Float.parseFloat(num7)/Float.parseFloat(num8);
AnswDiv.setText(String.valueOf(division));
}catch (Exception e) {
AnswDiv.setText("Could not divide!");
}
break;
}
}
}
Ich versuchte, die Ausnahme abfangen eine Fehlermeldung angezeigt werden, wie Sie aber es versäumt sehen. Was schlägst du vor?
Danke, das hat den Trick gemacht. Ich möchte nur fragen, was ist der Punkt der Catch-Ausnahme in Ihrem Code, wenn diese spezifische Fehlermeldung nicht angezeigt wird ("Konnte nicht teilen!")? Entschuldigung, wenn es eine blöde Frage ist, aber ich lerne. – Rengaw
catch (NumberFormatException ex) { AnswDiv.setText ("Nur Zahlen erlaubt!"); } ist für den Fall, dass Benutzer Buchstaben in Ihr Textfeld eingeben. Die Exception-Klausel ist nutzlos (es sei denn natürlich, dass AnswDiv null ist) –
Auch wenn die Antwort das Problem lösen würde, würde es Ihnen etwas ausmachen, es anzunehmen? :) –