2016-07-20 11 views
0

Im new для android. У меня есть один фрагмент (Меню) и один пользовательский адаптер (MenuListCustomAdapter). В этом фрагменте есть один список и один текстовый просмотр. В каждом представлении списка есть две кнопки (добавить & под) и текст. Мое сомнение в том, что я написал onclicklistener для (добавьте & под) кнопки в пользовательском адаптере, хотя нажимаю на эти кнопки, я хочу изменить текстовое представление в фрагменте (Меню). ФрагментКак получить значение от пользовательского адаптера в том же фрагменте

Меню:

adapter = new MenuListCustomAdapter(itemList, this.getActivity(),"http://xyz/images/fish.png"); 
    menuList.setAdapter(adapter); 

CustomAdapter:

holder.plus.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       int quantity = Integer.parseInt(holder.qty.getText().toString()); 
       if(list.size()>0){ 

         String value = list.get(position).Quantity.toString(); 
         Log.d("plus Position on Click", String.valueOf(position)); 
         int count = Integer.parseInt(value)+1; 
         list.get(position).Quantity = String.valueOf(count); 
         holder.qty.setText(String.valueOf(count)); 
         Log.d("plus value", String.valueOf(count)); 

        if(count>0){ 
         list.get(position).selFlag = true; 

        }else { 
         list.get(position).selFlag = false; 
        } 

       } 
      } 
     }); 

Пожалуйста, кто-нибудь мне помочь!

+0

так, где и получил ошибку? –

+0

Я не получил ошибку. Я не знаю, как получить доступ к виджетам adpater во фрагменте – hikoo

+0

Я уже установлен. Если я нажимаю кнопку из адаптера. Я хочу передать значение фрагменту – hikoo

ответ

0

Вы должны использовать интерфейс для обработки событий списка.

В адаптере

// Define listener member variable 
private static OnItemClickListener listener; 
// Define the listener interface 
public interface OnItemClickListener { 
    void onItemClick(View itemView, int position); 
} 
// Define the method that allows the parent activity or fragment to define the listener 
public void setOnItemClickListener(OnItemClickListener listener) { 
    this.listener = listener; 
} 

В вашем адаптерами ViewHolder:

plus.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       if (listener != null) 
        listener.onItemClick(v, k); 
      } 
     }); 

В вашем фрагменте:

adapter.setOnItemClickListener(new MenuListCustomAdapter.OnItemClickListener() { 
     @Override 
     public void onItemClick(View view, int position) { 

       //you can check which view was clicked 
       if(view.getId() == R.id.viewID){ 

       //do your stuff here 
       } 
     } 
    }); 
Смежные вопросы