Anzeigen-Halter OnClickListener event Problem

Erstelle ich ein listview-adapter mit dem anzeigen-Halter :

final ViewHolder holder;
if (convertView == null) {
     convertView = layoutInflater.inflate(R.layout.activity_list_layout, null);
     holder = new ViewHolder();
     //Layout Code here
     convertView.setTag(holder);
}
else {
     holder = (ViewHolder) convertView.getTag();
}

Einstellung Onclick-Listener :

 holder.view.setOnClickListener(titleListener);
 final OnClickListener titleListener = new OnClickListener() {
         @Override
         public void onClick(View v) {
          holder.view.setBackgroundResource(R.drawable.top_bar);
          notifyDataSetChanged();

          }
     };

Innerhalb des Onclick-listner, ändere ich das hintergrund Bild des ausgewählten Ansicht. Aber hier, mit dem ausgewählten Element, für andere Elemente in der gleichen listview, wird das Hintergrundbild immer verändert. Bitte mir empfehlen, welche änderungen muss ich machen, um das zu ändern BG nur für das ausgewählte Element.

Aktualisierten code für getview :

final ViewHolder holder;        

if (convertView == null) {
            convertView = layoutInflater.inflate(
                    R.layout.activity_news_list_layout, null);
            holder = new ViewHolder();
            holder.title = (TextView) convertView.findViewById(R.id.title);
            holder.image = (ImageView) convertView
                    .findViewById(R.id.thumbImage);
            holder.view = (RelativeLayout) convertView.findViewById(R.id.tView);
            holder.opacityView = (View) convertView
                    .findViewById(R.id.opacity_view);

            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }

holder.view.setOnClickListener(titleListener);
 final OnClickListener titleListener = new OnClickListener() {
         @Override
         public void onClick(View v) {
          holder.view.setBackgroundResource(R.drawable.top_bar);
          notifyDataSetChanged();

          }
     };

 holder.view.setOnClickListener(titleListener);
        return convertView;

Bitte überprüfen Sie das Bild, den ich ausgewählt habe, die Zeile "Das Dubai Community", sondern der hintergrund wurde geändert, für "ich war Zuversichtlich" auch. Es gibt einige andere Zeilen, die auch ausgewählt wurde, die auf das click-Ereignis

Anzeigen-Halter OnClickListener event Problem

  • plz, zeigen Sie alle code in der getView()
  • Ich denke dein problem ist ähnlich wie this...
  • Können Sie nur versuchen, um den hintergrund wie diese v.setBackgroundResource(R.drawable.top_bar); auch Sie haben, um den code besser zu verwalten Ansichten.
  • Versucht, aber Gleiches Ergebnis 🙁
  • Warum sind Sie Einstellung ein onClickListener innen Ihre adapter? Wenn der adapter wird angewendet, um eine ListView sollten Sie keine Verarbeitung des Ereignisses in der ListView's setOnItemClickListener?
  • Besser Sie verwenden drawable-Selektor, um Platz für diese.

InformationsquelleAutor Timson | 2014-03-11
Schreibe einen Kommentar