我向我的ListView
添加了3個項目。每個項目都說「測試」。當我點擊一個項目時,我清除了該項目的文本。但是,當我檢查「手錶」日誌中的變量時,即使刪除了文本,該項仍被命名爲「測試」。ListView文本更改但不包含適配器數據
手錶日誌:
adapter2.getItem(1) = {[email protected]}"Test"
list.getItemAtPosition(1) = {[email protected]}"Test"
我想ListView
到被點擊
例如手錶日誌看起來應該是這樣後得到更新,使該項目的空白:
adapter2.getItem(1) = {[email protected]}""
list.getItemAtPosition(1) = {[email protected]}""
有人可以告訴我爲什麼我的這種情況正在發生並提供解決方案嗎?
編輯代碼
public class ListView2 extends Fragment {
ListView list;
ArrayAdapter<String> adapter2;
List<String> array_list;
@Override
public View onCreateView(LayoutInflater inflater,
@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.listview2, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
array_list = new ArrayList<String>();
array_list.add("Test");
array_list.add("Test");
array_list.add("Test");
//Build Adapter
adapter2 = new ArrayAdapter<String>(getActivity(), R.layout.items, array_list);
//Configure the list view
list = (ListView) getActivity().findViewById(R.id.listview2);
list.setAdapter(adapter2);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
TextView txt = (TextView)view.findViewById(R.id.txt);
if(txt.getText().toString().equals("Test")) {
txt.setText("");
}else{
txt.setText("Test");
}
adapter2.notifyDataSetChanged();
}
});
}
}
調用adapter.notifyDatasetchanged()當您更新文本 – 2015-02-23 04:57:41
我試過,但它不工作。當我調用adapter.notifyDatasetchanged()時,我點擊時沒有任何反應。 「Test」永不消失 – user2456977 2015-02-23 05:01:43
您正在將文本添加爲adapter2.add(「Test」);更新文本在點擊的位置,然後調用adapter.notifydatasetchanged() – 2015-02-23 05:07:49