사용자 지정 어댑터가있는 목록보기가 있습니다.
다음은 내 getView 메서드입니다.
@Override
public View getView(int position, View convertView, ViewGroup parent) {
view = convertView;
if (convertView == null) {
//inflate the view for each row of listview
view = layoutInflater.inflate(R.layout.rating_item, null);
mViewHolder = new ViewHolder();
mViewHolder.mstatus = (TextView) view.findViewById(R.id.ratingStatus);
mViewHolder.mCheckBox = (CheckBox) view.findViewById(R.id.checkBox);
view.setTag(mViewHolder);
} else {
mViewHolder = (ViewHolder) view.getTag();
}
mViewHolder.mstatus.setText("Status");
return view;
}
그런 다음 mStatus
내 코드 에서 texview 를 다음과 같이 업데이트하려고 합니다.
RatingAdapter ratingAdapter = new RatingAdapter(getActivity(), starOneList);
TextView status = (TextView) getViewByPosition(0, mListView).findViewById(R.id.ratingStatus);
status.setText("New Status");
mListView.setAdapter(ratingAdapter);
Toast.makeText(getActivity(), "Log" +
status.getText().toString(), Toast.LENGTH_SHORT).show();
ratingAdapter.notifyDataSetChanged();
문제는 texview가 설정되고 있지만 ui에서는 변경 사항이 표시되지 않는다는 것입니다. 내 말은, 내가 얻는 토스트 메시지는 "New Status"이지만 ui에서는 변경 사항이 적용되지 않고 textview에 여전히 이전 텍스트가 표시됩니다 Status
. 왜 이렇게이다?
매번 textview에서 업데이트하려는 텍스트를 전달해야합니다. 이제 정적으로 매번 textview를 설정합니다. 즉 mViewHolder.mstatus.setText ( "Status"); 이 대신 코드는 다음과 같습니다. mViewHolder.mstatus.setText (newtext); 여기서 newtext는 새로운 문자열 값을 보유하는 일부 변수입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다