2017-10-14 16 views
0

notifyDataSetChanged()メソッドに関する多くの質問と回答が既にstackoverflowにあると認識していますが、それらのほとんどを見直して何が間違っているのか理解できませんここに。ユーザーが「Add Ingredient Button」をクリックすると、リストビューを動的に追加するようにしています。最初のクリック後に最初の成分が追加されますが、それ以降のクリックでもリストビューは変更されません。どんな助けもありがとうございます。私のリストビューを更新するためのnotifyDataSetChanged()の問題

@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

エラーを表示してください。 – KeLiuyue

+0

エラーはありません。 Logcatは現在、私のingredientsListListArrayが確実に追加されていることを示しています:21476-21476/com.epicodus.myrestaurants I/NewRecipeActivity:リストには以下が含まれます:[3 tsp dsf] 10-14 01:46:00.804 21476-21476/com .epicodus.myrestaurants I/NewRecipeActivity:リストには以下が含まれます:[3 tsp dsf、4 tsp fdg] 10-14 02:08:25.729 21476-21476/com.epicodus.myrestaurants I/NewRecipeActivity:リストには以下が含まれます:[3 tsp dsf、 4 tsp fdg、4 tsp gdfg、4 tsp gdfg] 10-14 02:08:31.449 21476-21476/com.epicodus.myrestaurants I/NewRecipeActivity:リストには以下が含まれます:[3 tsp dsf、4 tsp fdg、4 tsp gdfg、6 tsp dsf] –

+0

[https://stackoverflow.com/questions/3669325/notifydatasetchanged-example](https://stackoverflow.com/questions/3669325/notifydatasetchanged-example) – KeLiuyue

答えて

0

あなたはああ、私はこの1つについての愚かな感じ。この

String ingredient = createIngredientString(); 
adapter.add(ingredient); 
adapter.notifyDataSetChanged(); 
0

のような方法に

adapter.add(ingredient) 

を使用して、アダプタのリストに新しい成分を追加する必要があります。私の質問に投稿されたのと同じように、このコードはすべて機能していました。アクティビティのlistview要素の高さが52ピクセルに設定されているため、リストビューに追加された行は表示されませんでした。 投稿を読んで約4時間を費やして、Javaファイル内のすべての種類のものを変更しました。表示要素の高さに問題がありました。 悲しいトロンボーン・サウンド

関連する問題