2016-07-29 4 views
0

Я пытаюсь создать таблицу умножения, где 1-й EditText принимает фактическое число, а 2nd EditText принимает фактический диапазон таблицы умножения. Когда я запускаю проект, результатом является только номер * диапазон .. может кто-нибудь помочь мне в цикле или кодексе, указанном ниже. Или любые альтернативы для отображения таблицы в GridLayout или TableLayout, а не TextView.таблица умножения отображения в 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

Что вы имеете в виду «фактическое число» и «фактический диапазон»? Может быть, пример вашего желаемого конечного результата помог бы –

+0

Можете ли вы дать несколько примеров ввода как EditText, так и ожидаемого результата? –

+0

@ EthanWilliams- Ну .. например, если у меня есть фактическое число как 2 .. & желаемый диапазон как 10 .. поэтому цикл должен отображаться .. таблица умножения 2 .. как в .. 2 x 1 = 2 до 2 x 10 = 20 –

ответ

1

вы звоните setText() для каждой строки, но setText() сбросит текст TextView, вы можете захотеть использовать append() вместо

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");  
} 

или, возможно, использовать 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

@ лелламан- umm .. спасибо за ответ. но все еще есть некоторый вопрос .. На самом деле она должна быть как 2 х 1 = 2 2 х 2 = 4 2 х 3 = 6 .. и так далее .. , но его, как номер * Диапазон = значение диапазон не запускается с 1 и его отображение того же значения и выхода, например .. фактическое число = и желаемый диапазон = поэтому его отображение 2 * 5 = 10 такое же, как и концы конца –

+0

ok теперь я вижу, я только что отредактировал ответ, вам просто нужно одно для цикла – lelloman

+0

@ lelloman. Большое вам спасибо за ответ. он работал хорошо! Не могли бы вы помочь мне в другом контексте ... Поскольку я пытаюсь разработать простой калькулятор с базовыми функциями. Как отключить кнопку, если кнопка нажата без ввода в TextView. Или как я могу отобразить сообщение об ошибке в TextView, если кнопка нажата без ввода. Любая помощь будет оценена. Спасибо. –

Смежные вопросы