2016-06-23 6 views
0

は、リストビューのチェックボックスを持って確認します失い、スクロールが選択されたチェックボックスとランダムチェックボックスが は、リストビューのチェックボックスを持って確認します失い、スクロールは、チェックボックスを選択失い、 ランダムチェックボックスがチェックされます。 このリストビューをスクロールしています。チェックボックスはオフです。 チェックボックスは、あなたがこのリンクをチェックすることができリストビューのチェックボックスを持つ、スクロールが選択されたチェックボックスとランダムチェックボックスが

public class FriendList extends ArrayAdapter<FriendListResult> { 
    private List<FriendListResult> list; 
    LayoutInflater layoutInflater; 
    public int resource; 
    private Holder holder = null; 

    //Constructor 
    public FriendList(Context context, int resource, List<FriendListResult> objects) { 
    super(context, resource, objects); 
    this.list = objects; 
    this.resource = resource; 
     // Cache the LayoutInflate to avoid asking for a new one each time. 
    this.layoutInflater = LayoutInflater.from(context); 
    } 

// getview method 
@Override 
public View getView(final int position, View view, ViewGroup parent) { 
// check if view is null or not 
// create new row view 
    if (view == null) { 
// inflating layout 
     view = layoutInflater.inflate(resource, null); 
// initializing holder 
     holder = new Holder(); 
     holder.txtTitle = (TextView) view.findViewById(R.id.tvContactNameMain); 
    // checkbox defined 
     holder.checkBox = (CheckBox) view.findViewById(R.id.chkboxFriendListItem); 
     view.setTag(holder); 
    } 
    else { 
     holder = (Holder) view.getTag(); 
    } 
    // set value from the list 
    final FriendListResult friendListResult = list.get(position); 
    // get and set name 
    holder.txtTitle.setText(friendListResult.getNickname()); 

// checkbox changeListener 
holder.checkBox.setOnCheckedChangeListener(new >CompoundButton.OnCheckedChangeListener() { 
@Override 
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
// Maximum three selection for checkbox 
    { 
    if (checkArrayList.size() >= 3 && isChecked) { 
     buttonView.setChecked(false); 
Toast.makeText(getContext(), "You have already chosen 3 friends", 
     Toast.LENGTH_LONG).show(); 
    } else if (isChecked) { 
     // storing position id to arraylist 
     checkArrayList.add(getItem(position).getId()); 
     notifyDataSetChanged(); 
     // userCheckCount to get the count 
     userCheckCount++; 
    } else if (!isChecked) {  
    //removing position from arraylist 
     checkArrayList.remove(getItem(position).getId()); 
     notifyDataSetChanged(); 
     userCheckCount--; 
    }  
    } 
}); 
    return view; 
} 
// holder class initializing widgets 
    class Holder { 
    private TextView txtTitle; 
    private CheckBox checkBox; 
    } 
} 
+0

私が使用することをお勧めします[RecyclerView(https://developer.android.com/reference/android/support/v7/widget/RecyclerView.html)提供しますこの問題に対処するデフォルトのメカニズム –

答えて

関連する問題