0
我正在做一個按鈕來添加一個列表項,每次我點擊它。我有這個代碼,但它只是第一次添加一個列表項。我怎樣才能讓它每次點擊按鈕時都增加一個。或者甚至可能是特定的時間範圍?這段代碼爲什麼只添加一個列表項目一次?
類中變量的聲明。
//LIST OF ARRAY STRINGS WHICH WILL SERVE AS LIST ITEMS
ArrayList<String> listItems = new ArrayList<>();
//DEFINING A STRING ADAPTER WHICH WILL HANDLE THE DATA OF THE LISTVIEW
ArrayAdapter<String> adapterForPic;
//RECORDING HOW MANY TIMES THE BUTTON HAS BEEN CLICKED
int clickCounter=0;
private ListView mListView;
onCreate()內的初始化。
if (mListView == null) {
mListView = (ListView) findViewById(R.id.photosListView);
}
adapterForPic=new ArrayAdapter<>(this,
android.R.layout.simple_list_item_1,
listItems);
setListAdapter(adapterForPic);
進行插入的方法。
//METHOD WHICH WILL HANDLE DYNAMIC INSERTION
public void addItems(View v) {
listItems.add("Clicked : "+clickCounter);
adapterForPic.notifyDataSetChanged();
clickCounter++;
}
protected ListView getListView() {
if (mListView == null) {
mListView = (ListView) findViewById(R.id.photosListView);
}
return mListView;
}
protected void setListAdapter(ListAdapter adapter) {
getListView().setAdapter(adapter);
}
protected ListAdapter getListAdapter() {
ListAdapter adapter = getListView().getAdapter();
if (adapter instanceof HeaderViewListAdapter) {
return ((HeaderViewListAdapter)adapter).getWrappedAdapter();
} else {
return adapter;
}
}
我用'ListView'和'Button'創建了一個簡單的活動,並將代碼複製到它中。我刪除了'getListAdapter()',因爲它從未在您發佈的代碼中調用過。每次點擊按鈕時,我的應用程序都會正確地繼續添加視圖,這讓我認爲問題出現在您*未發佈的代碼中;你可以發佈一切從你的活動/佈局,而不是隻是件? –
[This](https://codeshare.io/adkV0B)是我在Post.java文件中完整的Java代碼。 [這裏](https://codeshare.io/al41Pm)是我的佈局文件。 –
這個建議是基於我過去見過的一些奇怪的行爲。嘗試更改「listItems.add(」Clicked:「+ clickCounter);」到「listItems.add(」Clicked:「+ String.valueOf(clickCounter));」 – Hahn