簡體   English   中英

無法獲取notifyDataSetChanged()更新我的列表視圖

[英]Trouble getting notifyDataSetChanged() to update my listview

我知道在stackoverflow上已經有很多關於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);
        }
    }

您需要使用以下方法將新的成分添加到適配器的列表中

adapter.add(ingredient)

像這樣

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

哦,男孩,我對此很傻。 正如我的問題中所發布的那樣,代碼一直都在起作用。 我的活動上的listview元素的高度設置為52像素,因此不會出現添加到listview的任何行。 花了大約4個小時閱讀帖子並更改了Java文件中的各種內容,但這僅僅是display元素高度的問題。 提示悲傷的長號聲音

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM