2016-06-28 6 views
1

подчеркнутый текст Привет всем Я работаю с андроидным пользовательским списком с помощью флажка. Но я сделал этот пример. При нажатии на строку «Список» флажок установлен. Но мой список просматривает нижний верх, выбран флажок. Пожалуйста, помогите мне. Всем спасибо. Мой кодAndroid Custom Listview Checkbox Scroll

public class YoklamaListAdapter extends BaseAdapter { 
private Activity activity; 
private LayoutInflater inflater; 
public List<MovieYoklama> yoklamaItems; 
boolean selected = false; 
private int selectedPosition = -1; 
private int selectedStart = 0; 

public YoklamaListAdapter(Activity activity, List<MovieYoklama> movieItems) { 
    this.activity = activity; 
    this.yoklamaItems = movieItems; 
} 

@Override 
public int getCount() { 
    return yoklamaItems.size(); 
} 

@Override 
public Object getItem(int location) { 
    return yoklamaItems.get(location); 
} 

@Override 
public long getItemId(int position) { 
    return position; 
} 

public boolean isSelected() { 
    return selected; 
} 

public void setSelected(boolean selected) { 
    this.selected = selected; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 

    if (inflater == null) 
     inflater = (LayoutInflater) activity 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    if (convertView == null) 
     convertView = inflater.inflate(R.layout.listturyoklama_row, null); 

    ImageView thumbNail = (ImageView) convertView 
      .findViewById(R.id.thumbnailYoklama); 
    TextView title = (TextView) convertView 
      .findViewById(R.id.txtYoklamaTitle); 
    TextView kisiID = (TextView) convertView 
      .findViewById(R.id.txtYoklamaKID); 
    TextView kisiTip = (TextView) convertView 
      .findViewById(R.id.txtYoklamaKTip); 
    CheckBox chk = (CheckBox) convertView.findViewById(R.id.chckYoklama); 

    MovieYoklama m = yoklamaItems.get(position); 
    if (selectedStart == 0) { 
     chk.setChecked(true); 
     m.setCheckbox(true); 
    } else { 
     if (position == selectedPosition) { 
      if (!m.isCheckbox()) { 
       chk.setChecked(true); 
       m.setCheckbox(true); 
      } else { 
       chk.setChecked(false); 
       m.setCheckbox(false); 
      } 
     } 
    } 
    thumbNail.setImageResource(m.getThumbnailUrl()); 

    // title 
    title.setText(m.getTitle()); 
    // ID 
    kisiID.setText(m.getID()); 
    // Tip 
    kisiTip.setText(m.getTip()); 
    return convertView; 
} 

public void setCheckBox(int position) { 
    selectedPosition = position; 
    selectedStart = 1; 
    notifyDataSetChanged(); 
} 

}

Мои MovieYoklama Класс

public class MovieYoklama { 

private String title, ID, Tip; 
int thumbnailUrl; 
private boolean checkbox; 

public MovieYoklama() { 
} 

public MovieYoklama(String name, int thumbnailUrl, boolean checkbox, 
     String ID, String Tip) { 
    this.title = name; 
    this.thumbnailUrl = thumbnailUrl; 
    this.checkbox = checkbox; 
    this.ID = ID; 
    this.Tip = Tip; 
} 

public String getTitle() { 
    return title; 
} 

public void setTitle(String name) { 
    this.title = name; 
} 

public String getID() { 
    return ID; 
} 

public void setID(String ID) { 
    this.ID = ID; 
} 

public String getTip() { 
    return Tip; 
} 

public void setTip(String Tip) { 
    this.Tip = Tip; 
} 

public int getThumbnailUrl() { 
    return thumbnailUrl; 
} 

public void setThumbnailUrl(int thumbnailUrl) { 
    this.thumbnailUrl = thumbnailUrl; 
} 

public boolean isCheckbox() { 
    return checkbox; 
} 

public void setCheckbox(boolean checkbox) { 
    this.checkbox = checkbox; 
} 

} 

И тогда ListView щелчок деятельности clases

private YoklamaListAdapter adapteryoklama; 
---------- 
listViewYoklama.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> parent, View view, 
       int position, long id) { 
      adapteryoklama.setCheckBox(position); 

     } 
    }); 
+0

Вы можете прочитать это: http://www.mysamplecode.com/2012/07/android-listview-checkbox-example.html –

ответ

0

Вы должны обновить объект MovieYoklama, когда пункт щелкнул ,

public void setCheckBox(int position) { 
    MovieYoklama m = yoklamaItems.get(position) 
    m.setCheckbox(true); 
    selectedStart = 1; 
    notifyItemChanged(position); 
}