나는 안드로이드에서 시작하여 ListActivity
을 사용하여 기본해야 할 일 목록을 만들고 있습니다. 기본적으로 항목 (항목)을 클릭 할 때마다 해당 항목에 해당 SharedPreferences
파일이 표시 (또는 표시되지 않음)됩니다.클릭없이 ListView에서 TextView를 가져 오는 방법은 무엇입니까?
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
SharedPreferences savedList = this.getPreferences(0);
String item = savedList.getString(position + "", "");
if (item.contains(checked)) {
item = item.replace(checked,"");
SaveItem(item, position);
((TextView)v).setPaintFlags(((TextView)v).getPaintFlags() & (~ Paint.STRIKE_THRU_TEXT_FLAG));
}
else {
item = checked + item;
SaveItem(item,position);
((TextView)v).setPaintFlags(((TextView)v).getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
}
}
(. (가) 여기서 "선택"그냥 문자열 임) OnCreate
방법에 한테 SharedPreferences
파일을 읽고 다음과 같이 또한 해당 TextView
또한 setPaintFlags
을 사용하여 베 (또는 unslashed)되고
for (int i = 0;; i++){
pos = i;
listitems = savedList.getString(""+i,"");
if (listitems.matches("")){ //if first entry in saved file is empty, stop the loop
break;
}
else if(listitems.contains(checked)){
listitems.replace(checked,"");
listItems.add(listitems);
adapter.notifyDataSetChanged();
TextView textview = (TextView) (getListView()).getChildAt(i);
textview.setPaintFlags(textview.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
}
else{
listItems.add(listitems);
adapter.notifyDataSetChanged();
}
}
이 두 가지 문제가 발생하여, 작동하지 않는 것 : 다음과 같이 그것을 공격하는, 내가 다시하고 싶은, 사람이 표시되어있는 체크리스트, 그리고 중의 항목을 다시 처음 , 내가 체크 된 것들로부터 "체크 된 것"을 제거하더라도, 아이템 appea ListView
의 링에는 여전히 "확인 됨"이 있습니다. 둘째, 파업이 나타나지 않아 해당 TextView
이 선택되지 않았다고 믿게됩니다.
편집 : 뭔가를 포함하는 것을 잊었습니다.
최종 행이 정수를 반환하지 않습니까? 반면에 ListView에서 TextView를 검색하려고합니다. – badraccoon
findViewById가보기를 반환합니다 ... – popo