2017-08-14 14 views
0

私はそれをクリックするたびにリストアイテムを追加するためのボタンを作っています。私はこのコードを持っていますが、初めてリスト項目を追加するだけです。ボタンをクリックするたびに追加するようにするにはどうすればよいですか。あるいは、特定の時間帯さえあれば?なぜこのコードはリストアイテムを1回だけ追加しますか?

クラス内の変数の宣言。

//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; 
    } 
} 
+0

私は 'ListView'と' Button'を使って単純なアクティビティを作成し、それにあなたのコードをコピーしました。あなたが投稿したコードの中で決して呼び出されないので、私は 'getListAdapter()'を削除しました。私のアプリは、ボタンをクリックするたびに正しくビューを追加し続けます。これは、あなたが*投稿していないコードに問題があると思うようにします。単なる作品ではなく、あなたの活動/レイアウトからすべてを投稿できますか? –

+0

[This](https://codeshare.io/adkV0B)はPost.javaファイルの完全なJavaコードです。 [Here](https://codeshare.io/al41Pm)は私のレイアウトファイルです。 –

+0

この提案は、私が過去に見たいくつかの奇妙な行動に基づいています。 "listItems.add(" Clicked: "+ clickCounter);"を変更してみてください。 to "listItems.add(" Clicked: "+ String.valueOf(clickCounter));" – Hahn

答えて

0

問題はListView要素の高さにありました。それはwrap_contentでしたので、私には1つのリストアイテムしか示されませんでした。

関連する問題