항목 목록이있는 응용 프로그램을 개발 중이며 목록보기에서 특정 항목을 선택하면 선택한 전체 행의 배경색을 변경하고 싶지만이 모든 행을 구현할 때 배경색이 변경되었습니다. 제발 누군가 도와주세요. Advace에 감사드립니다. 내 Adaptor.xml은 다음과 같습니다.Listview의 특정 행 배경 변경
public class Adaptor_ListItem extends ArrayAdapter<MyItem> {
public Context mContext;
public ArrayList<MyItem> listItem;
public LayoutInflater inflater;
public int position1=-1;
public Adaptor_ListItem(Context context, int resource, List<MyItem> list,
int selectedPos) {
super(context, resource, list);
// TODO Auto-generated constructor stub
mContext = context;
listItem = (ArrayList<MyItem>) list;
inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
position1 = selectedPos;
} // method ends
public View getView(int pos, View convertView, ViewGroup parent) {
View holder = convertView;
if (holder == null) {
holder = inflater.inflate(R.layout.adaptor_itemlist, null);
}
if (listItem.size() != 0) {
TextView txtName = (TextView) holder
.findViewById(R.id.ListItem_txtName);
TextView txtDays = (TextView) holder
.findViewById(R.id.ListItem_txtDays);
TextView txtRecurring = (TextView) holder
.findViewById(R.id.ListItem_txtRecuring);
MyItem objItem = listItem.get(pos);
if (objItem != null) {
String strName = objItem.itemName;
String strRecurring = objItem.recurring + "";
String strDays = objItem.days;
int itemId = objItem.itemId;
// for checking which item has notified
if ((pos== position1) && holder!=null) {
LinearLayout linearLayout = (LinearLayout) holder
.findViewById(R.id.linearListItem);
txtName.setBackgroundColor(Color.RED);
txtDays.setBackgroundColor(Color.RED);
txtRecurring.setBackgroundColor(Color.RED);
System.out.println("Adaptor_ListItem.getView()//// method block");
}
if (strDays == null) {
txtName.setText(strName);
txtDays.setText("0 Days");
txtRecurring.setText(strRecurring + "");
} else {
txtName.setText(strName);
txtDays.setText(strDays + " Days");
txtRecurring.setText(strRecurring + "");
}
}
}
return holder;
}// method ends
} // final class ends
실제로 이것은 필요하지 않습니다. –
어디에서 변경 되나요? onItemClickListener()를 업데이트 할 수 있습니다. – user543
Shayan pourvatan : 사실 나는 listif의 특정 항목에 대한 알림을 추가하고 있습니다. notifcation이 수신되면이 활동을 열 때이 목록보기가있는 활동이 의도를 통해 열리고 선택된 행의 위치가이 의도에 추가됩니다.이 활동이 열리면이 위치를 얻고 전달합니다. 그것은 (pos == position1)면,이 조건에 의해 뭐하는거야이 행에 몇 가지 배경색을 설정하는 어댑터 생성자에 있지만, 모든 행의 배경색을 변경, 내 배경은 단지 배경색을 변경해야합니다 내 문제입니다 선택된 행. –