2016-06-28 17 views
1

強調テキストこんにちは皆私はアンドロイドのカスタムリストビューをチェックボックスの例で動作させます。しかし、私はこの例をしました。 List行をクリックすると、チェックボックスが選択されます。しかし、私のlistviewは、選択されたチェックボックスの変更をボトムトップでスクロールします。私を助けてください。みんな、ありがとう。活動によって、私のコードAndroidカスタムリストビューのチェックボックススクロール

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; 
} 

} 

、その後、リストビューをクリックして、項目がクリックされたとき、あなたはMovieYoklamaオブジェクトを更新する必要が

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

clases 。

public void setCheckBox(int position) { 
    MovieYoklama m = yoklamaItems.get(position) 
    m.setCheckbox(true); 
    selectedStart = 1; 
    notifyItemChanged(position); 
} 
関連する問題