2016-04-17 5 views
0

У меня есть список, и каждый элемент состоит из 3 разных текстовых просмотров. Мне нужно проверить, имеет ли контент третьего текстового представления определенное значение.Проверьте содержимое каждого текстового поля из списка.

Любые идеи о том, как это сделать? Я думаю, что это должно быть реализовано внутри класса адаптера.

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

Это почти определенно должно быть реализовано в владельце адаптера. Но большой вопрос: хотите ли вы проверить просмотры на экране или все элементы в списке? Если его второй, возможно, адаптер не должен быть задействован - просто держите ссылку на массив и перебирайте его.

+0

Ну, мне нужно проверить текст каждого элемента. – Mada

+0

Если он есть в списке, у них не все будут текстовые представления. Именно так работает список - просмотр переработчиков. Только строки на экране имеют вид –

-1

Вы можете использовать метод TextView getText(), он возвращает текст, отображаемый TextView, и использует его в соответствии с вашими потребностями. Он должен быть реализован в классе адаптера.

+0

Что-то вроде: public boolean checkForText() { if (adapter_nrItm.getText(). Equals "Is типа A")) { return false; } else return true; } У меня есть эта функция в классе адаптера, но я не вижу, как ее реализовать вне класса, чтобы проверить каждый элемент моего списка. Я хочу получить массив из каждого элемента типа A .. – Mada

+0

@Mada Сделайте класс адаптера внутренним классом. Вы можете передать adapter_nrtm.getText() в функцию. Определение функции будет - public boolean checkForText (String str) {if (str.equals («Is типа A»)) {return false;} else return true;} –

0

В вашем MenuItem класс getPrice() метод дает вам возвращать целочисленное значение (цена)

Таким образом, вы должны проверить, что значение, используя при выполнении условия.

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; 

} 
} 
Смежные вопросы