2013-06-17 2 views
0

У меня есть список, чтобы показать мой собственный макет.
в пользовательском макете у меня есть RatingBar или любой думаю, хотите установить их действие!
Как добавить OnClickListener в мой RatingBar в пользовательском макете.
Я устанавливаю адаптер списка в моем основном действии.
пользовательский макет для listview добавляет OnClickListener внутри пользовательского макета

adapter = new ListviewBooksList(this, bookList); 
lstBook.setAdapter(adapter); 

работы и посмотреть информацию, но я не understant как добавить OnClickListener К моему RatingBar в пользовательском макете внутри!

public class ListviewBooksList extends BaseAdapter { 
static final String KEY_NAME = "bookName"; 
static final String KEY_FAV = "fav"; 
private Activity activity; 
private ArrayList<HashMap<String, String>> data; 
private static LayoutInflater inflater=null;  
public ListviewBooksList(Activity a, ArrayList<HashMap<String, String>> d) { 
    activity = a; 
    data = d; 
    inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
} 
public int getCount() { 
    return data.size(); 
} 
public HashMap<String, String> getItem(int position) { 

    HashMap<String, String> nameList = new HashMap<String, String>(); 
    nameList = data.get(position); 
    return nameList; 
} 
public long getItemId(int position) { 
    return position; 
} 
public View getView(int position, View convertView, ViewGroup parent) { 
    View vi = convertView; 
    if(convertView==null) 
     vi = inflater.inflate(R.layout.listview_books, null); 
    TextView bookName = (TextView)vi.findViewById(R.id.listveiw_books_name); 
    RatingBar fav = (RatingBar)vi.findViewById(R.id.star_fav_books); 
    nameList = data.get(position); 
    bookName.setText(nameList.get(KEY_NAME)); 
    fav.setRating(Float.valueOf(nameList.get(KEY_FAV))); 
    return vi; 
} 

}

ответ

0

Вы должны просто добавить слушателя к RatingBar в методе GetView(), при создании представления для элемента списка.

public View getView(int position, View convertView, ViewGroup parent) { 
    View vi = convertView; 
    if(convertView==null) 
     vi = inflater.inflate(R.layout.listview_books, null); 
    TextView bookName = (TextView)vi.findViewById(R.id.listveiw_books_name); 
    RatingBar fav = (RatingBar)vi.findViewById(R.id.star_fav_books); 
    nameList = data.get(position); 
    bookName.setText(nameList.get(KEY_NAME)); 
    fav.setRating(Float.valueOf(nameList.get(KEY_FAV))); 

    fav.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() { 
     public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) { 
      // action to perform when event is triggered    
     }  
    }); 

    return vi; 
} 
+0

Работайте, спасибо. Но мой список в onclick теперь не работает. и просто нажимать на панель показателей. –

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