我已經在一個文件list.xml的ListView填充了相同的值多次
<LinearLayout>
<Button
android:id="@+id/countryfilter"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:text="Load Country data"/>
<Button
android:id="@+id/domain_filter"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:text="Load Domain data"/>
<ListView
android:id="@+id/listContents"
android:layout_width="wrap_content"
android:visibility="gone"
android:layout_height="wrap_content">
</ListView>
</LinearLayout>
繼得到了與列表視圖一個XML文件,我有row.xml內的代碼
<CheckedTextView
android:id="@+id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Some text here"
android:textSize="18sp"
android:gravity="center_vertical"
android:clickable="true"
android:checkMark="?android:attr/listChoiceIndicatorMultiple"
android:focusable="true"
android:checked="false"
android:onClick="toggle"/>
在運行期間,listview將變得可見並且其數據將被設置。
這裏我設置onClickListener爲加載國家列表按鈕。 Countrylist項目已得到了一些國家
countryListBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
lv.setVisibility(View.VISIBLE);
initCountryList();
customAdapter = new CustomAdapter(
getApplicationContext(), R.layout.filters, android.R.id.text1, countryList
);
lv.setAdapter(customAdapter);
}
});
這裏進出口設置onClickListener負載域列表按鈕的列表。的domainlist包含域
domainListBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
lv.setVisibility(View.VISIBLE);
initDomainList();
domainAdapter = new CustomAdapter(getApplicationContext(), R.layout.filters, android.R.id.text1, domainList
);
lv.setAdapter(domainAdapter);
}
});
的問題是,
列表視圖每次填充值被點擊按鈕時的列表。所以listview有相同的值被多次顯示。
添加initDomainList();的代碼。看起來你正在添加元素,而不是空的。 – learner
你不需要創建新的適配器,如果已經存在,看看這裏:http://stackoverflow.com/questions/2250770/how-to-refresh-android-listview – yshahak
允許單擊按鈕一次布爾或調用initDomainList();只有一次 –