public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromTouch) { Integer myPosition=(Integer)ratingBar.getTag(); RowModel model=getModel(myPosition); model.rating=rating; LinearLayout parent=(LinearLayout)ratingBar.getParent(); TextView label=(TextView)parent.findViewById(R.id.label); label.setText(model.toString()); } };
//... ratingBar.setRating(cursor.getFloat(cursor.getColumnIndex(MyDbAdapter.KEY_RATING))); ratingBar.setTag(new Long(cursor.getLong(MyDbAdapter.KEY_ROWID))); RatingBar.OnRatingBarChangeListener barListener = new RatingBar.OnRatingBarChangeListener() { public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromTouch) { MyDbAdapter db = MyActivity.this.getDbHelper(); long theIdYouWant = (Long) ratingBar.getTag(); //use the id } } //...
Float rating = 4f; ratingBar.setFocusable(true); ratingBar.setTag(rating); ratingBar.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN) { if(keyCode == KeyEvent.KEYCODE_DPAD_CENTER || keyCode == KeyEvent.KEYCODE_ENTER) { v.setPressed(false); myRatingDialog.show(); } else if(keyCode == KeyEvent.KEYCODE_DPAD_LEFT) { if (v.focusSearch(View.FOCUS_LEFT) != null) v.focusSearch(View.FOCUS_LEFT).requestFocus(); } else if(keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) { if (v.focusSearch(View.FOCUS_RIGHT) != null) v.focusSearch(View.FOCUS_RIGHT).requestFocus(); } } return false; } }); ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() { @Override public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) { ratingBar.setRating((Float) ratingBar.getTag()); } });