2016-07-29 24 views
0

第2のEditTextが実際の乗算表の範囲を取る間、第1のEditTextが実際の数を取る乗算表を生成しようとしています。私がプロジェクトを実行すると、数字は*範囲です。 GridLayoutまたはTextViewではなくGridLayoutまたはTableLayoutに表を表示する任意の選択肢があります。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

@ lellomanumum ..答えにはおめでとうございます。まだそこにいくつかの問題があります...実際にそれが = 2×1 2 2×2 = 4 = 6 2×3のようにする必要があります。..というように... が、そのような 番号*範囲=値 範囲があります1 から開始されておらず、実際の番号=と希望の範囲= などの同じ値と出力を表示しているので、2 * 5 = 10と表示されます。 ループ終了まで同じ –

+0

ok今、私はちょうど編集しました答え、あなたはループのためにただ一つ必要があります – lelloman

+0

@ lelloman - 答えをありがとうございました。それはうまくいった!あなたは別の文脈で私を助けてください...私は基本的な機能を備えた簡単な電卓を開発しようとしています。 TextViewに何も入力せずにボタンを押すと、どのようにボタンを無効にすることができますか?または、ボタンが入力なしで押された場合、どのようにTextViewにエラーメッセージを表示できますか?どんな種類の助けにも感謝します。ありがとうございました。 –

関連する問題