我试图在resultsArray中存储作为输入的变量(字符串)。由于某种原因,它没有进展到填补下一个位置。只有结果数组中的第一个位置才有效。有任何想法吗?如果placecounter == 0,我每次都会存储字符串元素,然后在再次运行时调用(placeCounter> 0)并尝试再添加一个元素。
if(placeCounterExplanation == 0){
CategoryDetailArray = new String[30];
CategoryDetailArray[0] = categoriesItem;
IndividualExpenseDetailArray = new String[30];
IndividualExpenseDetailArray[0] = individualamountitem;
ExplanationDetailArray = new String[30];
ExplanationDetailArray[0] = explanationItem;
DateofPurchaseArray = new String [30];
DateofPurchaseArray[0] = currentDateItem;
// SharedPreferences sp = SharedPreferences.getDefaultSharedPreferences(this);
// SharedPreferences.Editor mEdit1 = sp.edit();
test.setText(ExplanationDetailArray[0]);
test2.setText(IndividualExpenseDetailArray[0]);
// test3.setText(DateofPurchaseArray[0]);
test4.setText(CategoryDetailArray[0]);
//String placeCount = Integer.toString(placeCounterExplanation);
// test3.setText(placeCount);
//STORE
editor.putInt("Status_size", ExplanationDetailArray.length); /* sKey is an array */
for(int i=0;i<ExplanationDetailArray.length;i++)
{
editor.remove("Explanation_" + i);
editor.remove("ExpenseAmount_" + i);
editor.remove("Category_" + i);
editor.remove("DOP_" + i);
editor.putString("Explanation_" + i, ExplanationDetailArray[i]);
editor.putString("ExpenseAmount_" + i, IndividualExpenseDetailArray[i]);
editor.putString("Category_" + i, CategoryDetailArray[i]);
editor.putString("DOP_" + i, DateofPurchaseArray[i]);
}
editor.commit();
}
if(placeCounterExplanation > 0){
//SharedPreferences mSharedPreference1 = PreferenceManager.getDefaultSharedPreferences(this);
//RECEIVE
// ExplanationDetailArray.clear();
int size = pref.getInt("Status_size", 0);
for(int i=0;i<size;i++)
{
// ExplanationDetailArray.add(pref.getString("Explanation" + i, null));
ExplanationDetailArray[i] = pref.getString("Explanation_" + i, null);
IndividualExpenseDetailArray[i] = pref.getString("ExpenseAmount_" + i, null);
CategoryDetailArray[i] = pref.getString("Category_" + i, null);
DateofPurchaseArray[i] = pref.getString("DOP_" + i, null);
}
ExplanationDetailArray[placeCounterExplanation] = explanationItem;
IndividualExpenseDetailArray[placeCounterExplanation] = individualamountitem;
CategoryDetailArray[placeCounterExplanation] = categoriesItem;
DateofPurchaseArray[placeCounterExplanation] = currentDateItem;
Intent intent = getIntent();
// getting attached intent data
String product = intent.getStringExtra("product");
// displaying selected product name
txtProduct.setText(product);
String[] ResultsArray = new String[placeCounterExplanation];
if (product.equals("Alcohol")){
//test3.setText(product);
if(CategoryDetailArray[0].equals("Alcohol")){
ResultsArray[resultCounter] = (IndividualExpenseDetailArray[resultCounter] + "" + ExplanationDetailArray[resultCounter] + "" + DateofPurchaseArray[resultCounter] );
}
if(CategoryDetailArray[1].equals("Alcohol")){
ResultsArray[resultCounter + 1] = (IndividualExpenseDetailArray[resultCounter + 1] + "" + ExplanationDetailArray[resultCounter + 1] + "" + DateofPurchaseArray[resultCounter + 1] );
}
// resultCounter = resultCounter + 1;
//}
test.setText(ResultsArray[0]);
test2.setText(ResultsArray[1]);
//editor.putInt("resultCounter",resultCounter);
// editor.commit();
//arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, ResultsArray);
// resultsListView.setAdapter(arrayAdapter);
//building result array
/* for(int i=0; i< placeCounterExplanation;i++){
if(CategoryDetailArray[i].equals("Alcohol")){
int resultCounter = pref.getInt("resultCounter",0);
ResultsArray[resultCounter] = (IndividualExpenseDetailArray[resultCounter] + "" + ExplanationDetailArray[resultCounter] + "" + DateofPurchaseArray[resultCounter] );
resultCounter = resultCounter + 1;
editor.putInt("resultCounter",resultCounter);
editor.commit();
}
}
}
* / }
//String placeCount = Integer.toString(placeCounterExplanation);
// test.setText(ExplanationDetailArray[0]);
//test2.setText(ExplanationDetailArray[1]);
//test3.setText(placeCount);
//test.setText(ResultsArray[0]);
// test2.setText(IndividualExpenseDetailArray[0]);
// test3.setText(CategoryDetailArray[0]);
// test4.setText(DateofPurchaseArray[0]);
//STORE
editor.putInt("Status_size", ExplanationDetailArray.length); /* sKey is an array */
for(int i=0;i<ExplanationDetailArray.length;i++)
{
editor.remove("Explanation_" + i);
editor.remove("ExpenseAmount_" + i);
editor.remove("Category_" + i);
editor.remove("DOP_" + i);
editor.putString("Explanation_" + i, ExplanationDetailArray[i]);
editor.putString("ExpenseAmount_" + i, IndividualExpenseDetailArray[i]);
editor.putString("Category_" + i, CategoryDetailArray[i]);
editor.putString("DOP_" + i, DateofPurchaseArray[i]);
}
editor.commit();
}
placeCounterExplanation = placeCounterExplanation + 1;
editor.putInt("placeCounterExplanation",placeCounterExplanation);
editor.commit();
答案 0 :(得分:0)
您可以使用ArrayList,以便添加项目没有限制。
ArrayList<String> yourlistname = new ArrayList<String>();
如果要存储int值,只需将ArrayList<String>
更改为ArrayList<Integer>
即可。
甚至你可以使用类名而不是String或int
用于添加值
yourlistname.add("item1");
获取价值
String value = yourlistname.get(index).toString();
获取ArrayList的大小
int length = yourlistname.size();