2016-04-17 12 views
0

私はリストビューを持っており、各アイテムは3つの異なるテキストビューで構成されています。私は3番目のtextviewの内容が特定の値を持っているかどうかを確認する必要があります。リストビューから各テキストビューの内容を確認

これはどのように行うのですか?私はそれがアダプタクラス内で実装されるべきだと思います。

public class CustomAdapterMenu extends ArrayAdapter<MenuItem> implements View.OnClickListener{ 

TextView adapter_nrItm=null; 
Button adapter_minus=null; 
Button adapter_plus=null; 


public CustomAdapterMenu(Context context, ArrayList<MenuItem> items) { 
    super(context,R.layout.custom_item, items); 
} 



@Override 
public View getView(final int position, View convertView, ViewGroup parent) { 
    LayoutInflater inflater=LayoutInflater.from(getContext()); 
    View customView=inflater.inflate(R.layout.custom_items, parent, false); 

    MenuItem menuItem=getItem(position); 
    String item=menuItem.getItem().toString(); 
    String type=menuItem.getType().toString(); 
    String price= String.valueOf(menuItem.getPrice()); 



    TextView adapter_item=(TextView)customView.findViewById(R.id.tvItem); 
    TextView adapter_type=(TextView)customView.findViewById(R.id.tvType); 
    TextView adapter_price=(TextView)customView.findViewById(R.id.tvPrice); 
    adapter_nrItm=(TextView)customView.findViewById(R.id.tv_nrItm); 
    ImageView adapter_image=(ImageView)customView.findViewById(R.id.image); 
    adapter_plus=(Button)customView.findViewById(R.id.btnAdd); 
    adapter_minus=(Button)customView.findViewById(R.id.btnDelete); 

    adapter_item.setText(item); 
    adapter_type.setText(ingredients); 
    adapter_price.setText(price); 
    adapter_image.setImageResource(R.drawable.icon); 


    return customView; 

} 
} 
+0

スニペットを投稿できますか? –

+0

@ArpitPatelちょっとしたスニペットを追加しました。ポイントは、特定のタイプのアイテムの配列を取得することです。ボタンを押すとタイプが変わります。 – Mada

+0

あなたは何を確認したいですか?価格?? –

答えて

0

ほとんどの場合、アダプターの所有者に実装する必要があります。しかし、大きな疑問は、画面上のビューやリスト内のすべての項目をチェックしたいのですか? 2番目の場合は、おそらく配列に参照を保持して、それを反復処理するだけで、アダプターは関与しないはずです。

+0

さて、各項目のテキストビューを確認する必要があります。 – Mada

+0

リストにある場合は、すべてがテキスト表示になるわけではありません。それがリストの仕組み - リサイクルの見方です。画面上の行だけがビューを持っている –

-1

TextViewメソッドgetText()を使用すると、TextViewが表示しているテキストが返され、必要に応じて使用されます。これはアダプタクラスで実装する必要があります。あなたののMenuItemクラスgetPrice()方法で

+0

次のようなものがあります:public boolean checkForText(){ if(adapter_nrItm.getText()。 "A型"と等しい)){ return false; } else trueを返します。 }私はアダプタクラスにこの関数を持っていますが、クラスビューの外に実装してlistviewの各要素をチェックする方法がわかりません。私はタイプAの各項目の配列を取得したいと思います。 – Mada

+0

@Madaアダプタクラスを内部クラスにします。adapter_nrtm.getText()を関数に渡すことができます。関数の定義は次のようになります。public boolean checkForText(String str ){if(str.equals( "タイプA")){return false;} else return true;} –

0

あなたはあなたが条件ならば使用してその値をチェックする必要があり、整数値(価格)

を返すできます。

public CustomAdapterMenu(Context context, ArrayList<MenuItem> items) { 
    super(context,R.layout.custom_item, items); 
} 



@Override 
public View getView(final int position, View convertView, ViewGroup parent) { 
    LayoutInflater inflater=LayoutInflater.from(getContext()); 
    View customView=inflater.inflate(R.layout.custom_items, parent, false); 

    MenuItem menuItem=getItem(position); 
    String item=menuItem.getItem().toString(); 
    String type=menuItem.getType().toString(); 

    if(menuItem.getPrice()==YourSPecificValue){ 

     Your code what you wanna to do. 
    } 

    String price= String.valueOf(menuItem.getPrice()); 



    TextView adapter_item=(TextView)customView.findViewById(R.id.tvItem); 
    TextView adapter_type=(TextView)customView.findViewById(R.id.tvType); 
    TextView adapter_price=(TextView)customView.findViewById(R.id.tvPrice); 
    adapter_nrItm=(TextView)customView.findViewById(R.id.tv_nrItm); 
    ImageView adapter_image=(ImageView)customView.findViewById(R.id.image); 
    adapter_plus=(Button)customView.findViewById(R.id.btnAdd); 
    adapter_minus=(Button)customView.findViewById(R.id.btnDelete); 

    adapter_item.setText(item); 
    adapter_type.setText(ingredients); 
    adapter_price.setText(price); 
    adapter_image.setImageResource(R.drawable.icon); 


    return customView; 

} 
} 
関連する問題