2017-03-16 66 views
-2
int n = Integer.parseInt(String.valueOf(txt.getText())); 

    for(int i = 1; i <= 10; i++) 
    { 
     txtview.setText(n+" "+i+"s are "+n*i); 
    } 

輸入來自由按鈕觸發的editText。試圖在TextView中打印數學表格。它唯一打印最後一行的表格?

這裏是TextView的:

<TextView 
     android:id="@+id/textView" 
     android:layout_width="395dp" 
     android:layout_height="264dp" 
     android:layout_marginBottom="8dp" 
     android:layout_marginEnd="8dp" 
     android:layout_marginRight="8dp" 
     android:layout_marginTop="8dp" 
     android:text="Hey! what's up?" 
     android:textSize="20dp" 
     android:singleLine="false" 
     android:inputType="textEmailAddress|textMultiLine" 
     android:lines="20" 
     app:layout_constraintBottom_toBottomOf="parent" 
     app:layout_constraintRight_toRightOf="parent" 
     app:layout_constraintTop_toTopOf="parent" 
     app:layout_constraintVertical_bias="0.0" /> 
+0

,因爲你只設置最後一行放入textview –

回答

2

每次你做

setText(); 

更換由新事物實際文本。使用

setText(txtview.getText().toString()+ "n+" "+i+"s are "+n*i"); 

改爲。

或者只是做一個大的字符串,而在循環之後顯示出來:

String result=""; 
for(...) { 
    result+="n+" "+i+"s are "+n*i"; 
} 
txtview.setText(result); 
+0

第二個選項是好的,首先創建單個字符串,然後設置所有數據然後設置文本。你也可以添加這個答案嗎? –

+0

大字符串的東西爲我工作!非常感謝:) – Ripudaman

4

的這個代替:

for(int i = 1; i <= 10; i++) { 
    txtview.setText(n+" "+i+"s are "+n*i); 
} 

試試這個:

StringBuilder sBuilder = new StringBuilder(); 
for(int i = 1; i <= 10; i++) { 
    sBuilder.append(n+" "+i+"s are "+n*i); 
} 
txtview.setText(sBuilder.toString()); 
+0

非常感謝,它運作良好! :) – Ripudaman