2016-11-02 5 views
0

Ich habe eine Listenansicht, indem ich in der Listenansicht auf ein Element klicke, bekomme ich ein Dialogfeld mit der gleichen Liste. Jetzt muss ich Kontrollkästchen anhängen, um aufzulisten, und durch Auswahl des Kontrollkästchens muss ich Element deaktivieren. Bitte helfen Sie mir, den Code zu aktualisieren, und es wäre verständlicher, wenn mir jemand helfen würde, indem ich den Code ändere.Wie man Kontrollkästchen zur Listenansicht im Dialogfeld hinzufügt

Meine Tätigkeit:

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

       } 


      }); 

mein Adapter:

public class ItemBumpingAdapter erweitert 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; 
} 

}

Check Box xml:

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

Liste Adapter:

public class CustomAdapter erweitert 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

Sie müssen also Artikel aus dieser Dialogliste oder tatsächlichen Listenansicht ausblenden? –

+0

durch Auswahl des Kontrollkästchens und Klicken auf "OK" Button muss ich das Element in der Listenansicht deaktivieren – mallika

+0

Kann ich Adapter sehen, die listView1 haben? –

Antwort

0

Also zuerst in Ihnen ein Flag hinzuzufügen ItemsBean.java, dass für diesen Artikel überprüfen muss sichtbar sein oder nicht.

Nehmen wir an, dass

public class ItemsBean{ 

    //some old variables 
    private boolean isChecked=false; 

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

    public boolean isChecked(){ 
     return isChecked; 
    } 
    } 

Jetzt in ItemBumpingAdapter der getView()

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

Klicken Sie nun auf der 'Ok' Button Dialog Sie isChecked Flagge newListitems vorbereiten neue temporäre Liste überprüfen müssen und Setzen Sie den Wert auf CustomAdapter.java Adapter oder Wenn Sie eine Kopie der Liste haben, entfernen Sie die markierte Artikelbeans von invoiceDataList und rufen Sie notifyDataStateChanged() von CustomAdapter.

+0

tnq soo viel jetzt selbst werde ich es überprüfen – mallika

+0

Ur willkommen .... :) –

Verwandte Themen