2016-10-26 9 views
0

無効なアイテムのListViewをリフレッシュするには、ヘルプが必要です。私はいくつかの記事を読んだことがあります。私は無効なアイテムをリフレッシュする方法がわからないと言います。したがって、あなたが私に手を差し伸べて、その追加のコードを投稿できるなら、それは高く評価されます。無効にしたリストビューをリフレッシュする方法

ありがとうございます!

私は私の活動でこのコードを持っている:

adapter = new CustomAdapter(PendingOrdersActitvity.this, itemsList1); 
listView.setAdapter(adapter); 

adapter.notifyDataSetChanged(); 

listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 

    @Override 
    public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { 
     for (int i = 0; i <itemsList1.size(); i++) { 
      if(i == position){ 
       view.setEnabled(false); 
       view.setClickable(false); 
       view.setBackgroundColor(Color.parseColor("#DCDBDB")); 

       ItemsBean bean = new ItemsBean(); 
       bean.setInvNo(itemsList1.get(position).getInvNo()); 
       bean.setItemnNameDisplay(itemsList1.get(position).getItemnNameDisplay()); 
       bean.setQuantityDisplay(itemsList1.get(position).getQuantityDisplay()); 
       bean.setProdnum(itemsList1.get(position).getProdnum()); 
       newlist.add(bean); 
       adapter.getmethod(position); 
      } 
     } 

     insertintodatabase(newlist); 
     newlist.clear(); 
     adapter.notifyDataSetChanged(); 

     return true; 
    } 

}); 

これは私のカスタムアダプタクラスで障害がどこにあるか私にはわからないけど

public class CustomAdapter extends BaseAdapter { 

    Context ctx; 
    private int pos; 
    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) { 
     this.ctx = kdsActitvity; 
     this.newList = invoiceDataList; 
     this.inflator = (LayoutInflater) ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     pos = -1; 
    } 

    public int getCount() { 
     return newList.size(); 
    } 

    public void getmethod(int pos1) { 
     pos = pos1; 
    } 

    @Override 
    public Object getItem(int position) { 
     return null; 
    } 

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

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

    } 

    @SuppressLint("NewApi") @Override 
    public View getView(final int position, View convertView, ViewGroup parent) { 
     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 { 

      if(pos!=-1 && pos==position) 
      { 
       convertView.setEnabled(false); 
       convertView.setClickable(false); 
       convertView.setBackgroundColor(Color.parseColor("#DCDBDB")); 

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

     } 
     //holder.qty.setText(String.valueOf(newList.get(position).getQuantityDisplay())); 

     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")); 
     } 
    } 
} 
をAndroidに新しいですと、私はプロジェクトを完了するのに助けが必要
+0

もあなた 'CustomAdapter'コードを表示自体をリフレッシュする必要があることを添付オブザーバーに通知します。 –

+0

あなたは私にNeeraj Mr – joy

+0

助けになるでしょう行をクリックするとどうなりますか? –

答えて

0

listview ClickListener内でadapter.notifyDataSetChanged()を呼び出します。

listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 

     @Override 
     public boolean onItemLongClick(AdapterView<?> parent, View view, 
     int position, long id) { 


     // TODO Auto-generated method stub 
      for (int i = 0; i <itemsList1.size(); i++) { 
       if(i == position){ 
         view.setEnabled(false); 
         view.setClickable(false); 
         view.setBackgroundColor(Color.parseColor("#DCDBDB")); 


         ItemsBean bean=new ItemsBean(); 
         bean.setInvNo(itemsList1.get(position).getInvNo()); 
         bean.setItemnNameDisplay(itemsList1.get(position).getItemnNameDisplay()); 
         bean.setQuantityDisplay(itemsList1.get(position).getQuantityDisplay()); 
         bean.setProdnum(itemsList1.get(position).getProdnum()); 
         newlist.add(bean); 
         adapter.getmethod(position); 
       } 

      insertintodatabase(newlist); 
      newlist.clear(); 
adapter.notifyDataSetChanged(); 


return true; 



     } 

     }); 
+0

それは働いていません@サシ – joy

+0

次にチェックitemsList1の値 – sasikumar

+0

sry私は重量を理解していませんでした – joy

0

ListViewは単なるコンテナです。 単一のアイテムを有効にする代わりに、クリアしてアダプタで再作成してください。

実際、アダプタはListViewを要素のArrayListに結びつけ、ArrayListの「状態」をListViewに表します。

既に作成されたListViewを操作しないでください。ただし、ArrayListを更新すると、ListViewも更新されます。

+0

私はそれを有効にしたい項目をクリアしたい – joy

0

使用notifydatasetchanged();

は、基になるデータが変更されたデータ・セットを反映する任意のビューが

+0

私はそれを試してみました – joy

関連する問題