2016-07-29 4 views
0

Ich versuche, eine Multiplikationstabelle zu generieren, wo der 1. EditText die tatsächliche Zahl nimmt, während 2. EditText den tatsächlichen Bereich der Multiplikationstabelle nimmt. Wenn ich das Projekt ausführen, ist das Ergebnis nur die Nummer * Bereich .. kann mir jemand helfen in der Schleife oder Code unten erwähnt Oder, keine Alternativen, um die Tabelle in GridLayout oder TableLayout statt TextView anzuzeigen.Anzeige-Multiplikationstabelle in TextView

protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_multiplication_table); 
    number = (EditText)findViewById(R.id.numberTable); 
    range = (EditText)findViewById(R.id.numberRange); 
    click = (Button)findViewById(R.id.click); 
    result = (TextView)findViewById(R.id.display); 
    final String x = range.getText().toString(); 
    click.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View view) { 
      int a = Integer.parseInt(number.getText().toString()); 
      int b = Integer.parseInt(range.getText().toString()); 



      for(int i = 1 ; i <= 10; i++) 
      { 
       for(int j = 1 ; j <= 10; j++) 
       { 
        int res = a * b; 
          result. setText(a +" * " + b + " = " + res); 

       } 





      } 
      return; 
     } 
    }); 

} 
} 
+0

verwenden verwenden Was meinst du mit "tatsächliche Anzahl" und "tatsächliche Reichweite"? Vielleicht würde ein Beispiel Ihres gewünschten Endergebnisses helfen –

+0

Können Sie eine Beispieleingabe von EditText und erwartetem Ergebnis geben? –

+0

@ EthanWilliams- Nun .. zum Beispiel wenn ich eine tatsächliche Nummer als 2 .. & gewünschten Bereich als 10 .. so sollte die Schleife angezeigt werden .. die Multiplikationstabelle von 2 .. wie in .. 2 x 1 = 2 bis 2 x 10 = 20 –

Antwort

1

Sie setText() für jede Zeile fordern, aber setText() den Text des TextView zurückgesetzt, können Sie append() statt

result.setText(""); 
int a = Integer.parseInt(number.getText().toString()); 
int b = Integer.parseInt(range.getText().toString()); 

for(int i = 1 ; i <= b; i++){  
    int res = a * i; 
    result.append(a +" * " + i + " = " + res + "\n");  
} 

oder vielleicht StringBuilder

int a = Integer.parseInt(number.getText().toString()); 
int b = Integer.parseInt(range.getText().toString()); 
StringBuilder builder = new StringBuilder(); 

for(int i = 1 ; i <= b; i++){  
    int res = a * i; 
    builder.append(a +" * " + i + " = " + res + "\n");  
} 

result.setText(builder.toString()) 
+0

@ lelloman- uhm .. danke für die Antwort. aber immer noch gibt es einige Probleme .. Eigentlich soll es sein wie 2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 .. und so weiter .. aber es ist wie Nummer * range = Wert Bereich nicht gestartet von 1 und seine Anzeige gleichen Wert und Ausgang wie .. tatsächliche Nummer = und gewünschten Bereich = so seine Anzeige 2 * 5 = 10 gleichen bis die Schleife endet –

+0

ok jetzt sehe ich, ich gerade bearbeitet die Antwort, Sie sollten nur eine für Schleife – lelloman

+0

@ Lelloman-Vielen Dank für die Antwort. es hat gut funktioniert !! Könntest du mir in einem anderen Kontext helfen? Ich versuche einen einfachen Taschenrechner mit grundlegenden Funktionen zu entwickeln. Wie kann ich die Schaltfläche deaktivieren, wenn die Schaltfläche ohne Eingabe in der Textansicht gedrückt wird? Oder wie kann ich in der Textansicht eine Fehlermeldung anzeigen, wenn die Taste ohne Eingabe gedrückt wird. Jede Art von Hilfe wird geschätzt. Vielen Dank. –