2016-05-11 7 views
1

こんにちは、textviewのAndroid電卓アプリで作業していますが、textviewのすべてのテキストはArrayListに入力されています。これまでのところ、削除ボタンを除いてすべて正常に動作しますので、ArrayListには要素([12999,+,56,-,545])が含まれていれば、ArrayListの最後のStringが削除されますので、ArrayList[12999,4,56,4,54]になります。これは私が今まで持っているコードですarraylistから要素を削除するには

public void delete(View view) { 
    String s; 
    into s1; 
    s = maincalculator.getText.to  
    string(); 
    s1 = maincalculator.getText.to  
    string().length(); 
    if(s1 > 0) 
    { 
     s = s.substring(0, s1 - 1); 
     maincalculator.setText(s); 
     arraylist.set(arraylist.size, s); 
    } 
} 
+1

[12999、+、56、 - 、545]から[12999,4,56,4,54]にどうやって行きましたか?私が理解していない情報がありません。なぜ '+'と '-'が' 4 'に置き換えられたのですか?最後の要素は「-54」ではないでしょうか? – robotlos

+0

ご質問は編集されており、すべてのエラーが修正されました –

答えて

0

削除された文字列の結果は保持しません。これを使って。

String newStr = s.substring(0,s1-1); 
maincalculator.setText(newStr); 
arraylist.set(arraylist.size, newStr); 
+0

私はちょうど入力ミスをしました –

0

まず、変数に意味のある名前を付けると、コードを読みやすくデバッグしやすくなります。

は、ArrayListのからの最後の項目を削除します(?それは0から始まり、右)

myArrayList.remove(myArrayList.size() - 1) 

.size()は、項目数を返し、- 1は、インデックスを取得することです。

+0

最後のアイテムを削除すると、インデックスの内容全体が削除される傾向があります。たとえば、[3,44,55] ]。私が必要とするのは、インデックスの一部を削除して[3,44,5]を取り除くことです。 –

0

EDIT:あなたがしようとしていることを理解した後に更新されました。これを試してみてください:

//Trim s to the substring that you want 
    s = s.substring(0, s.length() - 1); 
    //Set it to the last element in the arrayList 
    arrayList.set(arrayList.size() - 1, s); 
関連する問題