2016-11-02 1 views
0

J'ai une vue de liste, en cliquant sur l'élément dans la vue de liste je reçois une boîte de dialogue avec la même liste. Maintenant je dois attacher la case à cocher à la liste, et en sélectionnant la case à cocher je dois désactiver l'article. S'il vous plaît aidez-moi à mettre à jour le code et il serait plus appréciable si quelqu'un m'aide en modifiant le code.comment ajouter des cases à cocher pour afficher la liste dans la boîte de dialogue

MON ACTIVITÉ:

listView1.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 

       @Override 
       public boolean onItemLongClick(AdapterView<?> parent, View view, 
       int position, long id) { 
       // TODO Auto-generated method stub 
        newListitems2.addAll(itemsList1); 


        dialog = new Dialog(PendingOrdersActitvity.this); 
         dialog.setContentView(R.layout.itembumping); 

         list1=(ListView)dialog.findViewById(R.id.list1); 

         ItemBumpingAdapter adapter2 = new ItemBumpingAdapter(PendingOrdersActitvity.this,newListitems2); 
         list1.setAdapter(adapter2); 
        dialog.show(); 

        return(true); 

       } 


      }); 

MON ADAPTER:

ItemBumpingAdapter public class étend BaseAdapter {

ArrayList<String> childList = new ArrayList<String>(); 
ArrayList<String> qtychildList = new ArrayList<String>(); 
String parentobjid=null; 

ArrayList<ItemsBean> newListitems = new ArrayList<ItemsBean>(); 
Context ctx; 
LayoutInflater inflator; 
ViewHolder holder; 
int position; 
public ItemBumpingAdapter(PendingOrdersActitvity itemActitvity, 
     ArrayList<ItemsBean> newList1) { 
    // TODO Auto-generated constructor stub 
    this.ctx=itemActitvity; 
    this.newListitems = newList1; 
    this.inflator = (LayoutInflater) ctx 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
} 

public static void main(String[] args) { 
    // TODO Auto-generated method stub 

} 

@Override 
public int getCount() { 
    // TODO Auto-generated method stub 
    return newListitems.size(); 
} 

@Override 
public Object getItem(int position) { 
    // TODO Auto-generated method stub 
    return null; 
} 

@Override 
public long getItemId(int position) { 
    // TODO Auto-generated method stub 
    return position; 
} 


public class ViewHolder { 
    TextView qty, name, childText, qtyChild; 
} 
@Override 

public View getView(int position, View convertView, ViewGroup parent) { 
    // TODO Auto-generated method stub 


       ViewHolder holder; 
       String item = null, qty = null; 
       if (convertView == null) { 
        holder = new ViewHolder(); 
        convertView = inflator.inflate(R.layout.invoicelistadapter, null); 
        holder.qty = (TextView) convertView.findViewById(R.id.qty); 
        holder.name = (TextView) convertView.findViewById(R.id.item); 
        holder.childText = (TextView) convertView 
          .findViewById(R.id.childitem); 
        holder.qtyChild = (TextView) convertView 
          .findViewById(R.id.qtychild); 
        convertView.setTag(holder); 

       } else { 

        holder = (ViewHolder) convertView.getTag(); 
       } 
       parentobjid=newListitems.get(position).getParentobjectid(); 
       if(!parentobjid.isEmpty()) 
       { 
        holder.name.setText(" " +newListitems.get(position).getItemnNameDisplay()); 
        holder.name.setTextColor(Color.parseColor("#CC0000")); 
        holder.qty.setText("  "+String.valueOf(newListitems.get(position) 
          .getQuantityDisplay())); 
        holder.qty.setTextColor(Color.parseColor("#CC0000")); 
       } 
       else 
       { 

       holder.name.setText(newListitems.get(position).getItemnNameDisplay()); 
       holder.qty.setText(String.valueOf(newListitems.get(position) 
         .getQuantityDisplay())); 
       holder.name.setTextColor(Color.parseColor("#FFFFFF")); 
       holder.qty.setTextColor(Color.parseColor("#FFFFFF")); 
    } 
    return convertView; 
} 

}

case à cocher xml:

<CheckBox 
    android:id="@+id/chckbox1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    /> 

Liste Adaptateur:

CustomAdapter public class étend BaseAdapter {

Context ctx; 
LayoutInflater inflator; 
ArrayList<ItemsBean> newList = new ArrayList<ItemsBean>(); 
ArrayList<ItemsBean> newListitems = new ArrayList<ItemsBean>(); 
ArrayList<String> childList = new ArrayList<String>(); 
ArrayList<String> qtychildList = new ArrayList<String>(); 
String parentobjid=null; 

PendingOrdersActitvity myactivity; 
public CustomAdapter(PendingOrdersActitvity kdsActitvity, 
     ArrayList<ItemsBean> invoiceDataList) { 
    // TODO Auto-generated constructor stub 
    this.ctx = kdsActitvity; 


    this.newList = invoiceDataList; 
    this.inflator = (LayoutInflater) ctx 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
} 



@Override 
public int getCount() { 
    // TODO Auto-generated method stub 
    return newList.size(); 
} 

@Override 
public Object getItem(int position) { 
    // TODO Auto-generated method stub 
    return null; 
} 

@Override 
public long getItemId(int position) { 
    // TODO Auto-generated method stub 
    return 0; 
} 

public static class ViewHolder { 
    TextView qty, name, childText, qtyChild; 

} 

@SuppressLint("NewApi") @Override 
public View getView(final int position, View convertView, ViewGroup parent) { 
    // TODO Auto-generated method stub 
    ViewHolder holder; 
    String item = null, qty = null; 
    if (convertView == null) { 
     holder = new ViewHolder(); 
     convertView = inflator.inflate(R.layout.invoicelistadapter, null); 
     holder.qty = (TextView) convertView.findViewById(R.id.qty); 
     holder.name = (TextView) convertView.findViewById(R.id.item); 
     holder.childText = (TextView) convertView 
       .findViewById(R.id.childitem); 
     holder.qtyChild = (TextView) convertView 
       .findViewById(R.id.qtychild); 
     convertView.setTag(holder); 

    } else { 

     holder = (ViewHolder) convertView.getTag(); 
    } 


    parentobjid=newList.get(position).getParentobjectid(); 
    if(!parentobjid.isEmpty()) 
    { 
     holder.name.setText(" " +newList.get(position).getItemnNameDisplay()); 
     holder.name.setTextColor(Color.parseColor("#CC0000")); 
     holder.qty.setText("  "+String.valueOf(newList.get(position) 
       .getQuantityDisplay())); 
     holder.qty.setTextColor(Color.parseColor("#CC0000")); 
    } 
    else 
    { 

    holder.name.setText(newList.get(position).getItemnNameDisplay()); 
    holder.qty.setText(String.valueOf(newList.get(position) 
      .getQuantityDisplay())); 
    holder.name.setTextColor(Color.parseColor("#FFFFFF")); 
    holder.qty.setTextColor(Color.parseColor("#FFFFFF")); 

    } 


return convertView; 
} 

//

}

+0

Vous avez donc besoin de masquer un élément de cette liste de dialogues ou de cette liste? –

+0

en sélectionnant la case à cocher et en cliquant sur le bouton "ok" je dois désactiver l'élément dans la liste affichage – mallika

+0

Puis-je voir l'adaptateur dont ListView1 ont? –

Répondre

0

Alors d'abord en vous ItemsBean.java ajouter un drapeau pour vérifier que ce point doit être visible ou non.

Supposons que

public class ItemsBean{ 

    //some old variables 
    private boolean isChecked=false; 

    public void setChecked(boolean isChecked){ 
     this.isChecked=isChecked; 
    } 

    public boolean isChecked(){ 
     return isChecked; 
    } 
    } 

maintenant dans getView de ItemBumpingAdapter()

//You have to add checkbox in xml and in ViewHolder. 
//And make sure that newListitems has all ItemsBean.isChecked set to false. 


public View getView(final int position, View convertView, ViewGroup parent) { 
//Your previous implementations 
holder.checkbox.setChecked(false); 
holder.checkbox.settag(position); 
holder.checkbox.setOnClickListener(new OnClickListener(){ 

@Override 
public void onClick(View view){ 
int pos=view.gettag();//Cast object to integer 

    newListitems.get(pos).setChecked(!newListitems.get(pos).isChecked()); 

} 

}); 
return convertView; 
} 

maintenant sur un clic de bouton « Ok » de dialogue, vous devez vérifier isChecked drapeau de newListitems préparer une nouvelle liste de température et mis à CustomAdapter.java adaptateur ou Si vous avez une copie de la liste, puis supprimez checkedbean articles de invoiceDataList et appelez notifyDataStateChanged() de CustomAdapter.

+0

tnq soo beaucoup maintenant lui-même je vais le vérifier – mallika

+0

Ur Bienvenue .... :) –