2016-04-17 8 views
0

Ich habe eine Listenansicht, und jedes Element besteht aus 3 verschiedenen Textansichten. Ich muss überprüfen, ob der Inhalt der dritten Textansicht einen bestimmten Wert hat.Überprüfen Sie den Inhalt jeder Textansicht von einem Listenansicht

Irgendwelche Ideen, wie man das macht? Ich denke, es sollte innerhalb der Adapterklasse implementiert werden.

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

Können Sie ein paar Schnipsel posten? –

+0

@ArpitPatel Ich habe gerade ein Snippet hinzugefügt. Der Punkt besteht darin, ein Array dieser Elemente eines bestimmten Typs zu erhalten. Der Typ ändert sich, wenn Sie die Tasten drücken. – Mada

+0

Was möchten Sie überprüfen? Preis?? –

Antwort

0

Es sollte fast definitiv in der Adapter-Besitzer implementiert werden. Aber die große Frage ist, wollen Sie die Ansichten auf dem Bildschirm oder alle Elemente in der Liste überprüfen? Wenn es der zweite ist, sollte der Adapter wahrscheinlich nicht einmal beteiligt sein - behalte einfach einen Verweis auf das Array und iteriere darüber.

+0

Nun, ich muss die Textansicht jedes Elements überprüfen. – Mada

+0

Wenn es in einer Liste ist, werden sie nicht alle Textansichten haben. So funktioniert eine Liste - Ansichts-Recycling. Nur die Zeilen auf dem Bildschirm haben Ansichten –

-1

Sie können die TextView-Methode getText() verwenden, sie gibt den von TextView angezeigten Text zurück und verwendet ihn gemäß Ihren Anforderungen. Er muss in der Adapterklasse implementiert werden.

+0

So etwas wie: public boolean checkForText() { if (adapter_nrItm.getText(). Ist gleich "Ist vom Typ A")) { return false; } sonst Rückkehr wahr; } Ich habe diese Funktion in meiner Adapterklasse, aber ich kann nicht sehen, wie man es außerhalb der Klasse implementiert, um jedes Element meiner Listview zu überprüfen. Ich möchte ein Array von jeder Art von Typ A erhalten. – Mada

+0

@Mada Machen Sie die Adapter-Klasse zu einer inneren Klasse. Sie können die adapter_nrtm.getText() an die Funktion übergeben. Die Funktionsdefinition wird - public boolean checkForText (String str) {if (str.equals ("Ist vom Typ A")) {return false;} sonst return true;} –

0

In Ihrem MenuItem Klasse getPrice() Methode gibt Ihnen Integer-Wert (Preis) Rück

verwenden, wenn Bedingung So müssen Sie diesen Wert überprüfen.

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; 

} 
} 
Verwandte Themen