我认识到在stackoverflow上已经有很多关于notifyDataSetChanged()方法的问题和答案,但是我已经回顾了大部分问题并且无法弄清楚这里有什么问题。我正在尝试让我的listview在用户点击“添加成分按钮”时动态添加更多行。它将在第一次点击后添加第一个成分,但任何后续点击都不会导致对列表视图的任何更改。任何帮助表示赞赏。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_recipe);
ButterKnife.bind(this);
mAddInstructionsButton.setOnClickListener(this);
mAddIngredientButton.setOnClickListener(this);
adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, ingredientList);
mListView.setAdapter(adapter);
}
public void onClick(View v) {
if(v == mAddIngredientButton) {
if(mIngredientName.getText().toString().trim().equalsIgnoreCase("") || mIngredientMeasurement.getSelectedItem().toString().trim().equalsIgnoreCase("") || mIngredientCount.getText().toString().trim().equalsIgnoreCase("")) {
Toast answerStatus = Toast.makeText(NewRecipeActivity.this, "Fill out all fields", Toast.LENGTH_LONG);
answerStatus.show();
} else {
String ingredient = createIngredientString();
ingredientList.add(ingredient);
adapter.notifyDataSetChanged();
clearIngredientInputs();
Log.i("NewRecipeActivity", "List includes: " + ingredientList);
}
}
答案 0 :(得分:0)
您需要使用方法
将新的成分添加到适配器列表中adapter.add(ingredient)
像这样
String ingredient = createIngredientString();
adapter.add(ingredient);
adapter.notifyDataSetChanged();
答案 1 :(得分:0)