我是新来的android和堆栈溢出,所以我想说如果我做错了事,也不会违反规则和白痴问题,对不起!ANDROID - 如何在listview中定义ratingbar id?
我想知道如何在listview
通过ID 定义ratingbar
我的意思是,如何知道哪些ratingbar
列表就是让明星?
我一直在试图从网的教程,但它很难找到参照, 据我知道,我需要大约getView()
的实现来获得ratingBar
位置,但我不知道该怎么添加代码,
有人可以帮我解决这个问题吗?
我是新来的android和堆栈溢出,所以我想说如果我做错了事,也不会违反规则和白痴问题,对不起!ANDROID - 如何在listview中定义ratingbar id?
我想知道如何在listview
通过ID 定义ratingbar
我的意思是,如何知道哪些ratingbar
列表就是让明星?
我一直在试图从网的教程,但它很难找到参照, 据我知道,我需要大约getView()
的实现来获得ratingBar
位置,但我不知道该怎么添加代码,
有人可以帮我解决这个问题吗?
只需
这里是rating_bar_list_item.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:padding="10dp"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Food Rating"
android:id="@+id/textView"
android:layout_gravity="center_horizontal" />
<RatingBar
android:layout_margin="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/ratingBar"
android:layout_gravity="center_horizontal" />
</LinearLayout>
这里是RatingListCustomAdapter.java
public class RatingListCustomAdapter extends BaseAdapter {
ArrayList<String> ratingItemName;
Context context;
RatingListCustomAdapter(Context context, ArrayList<String> list){
ratingItemName = list;
this.context = context;
}
@Override
public int getCount() {
return 0;
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
View v = view;
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.rating_bar_list_item, viewGroup, false);
TextView itemName = (TextView) v.findViewById(R.id.textView);
itemName.setText(ratingItemName.get(i).toString());
RatingBar ratingBar = (RatingBar) v.findViewById(R.id.ratingBar);
ratingBar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
/*...Here you can get which rating bar is clicked.. where i is the position of the rating bar in list */
}
});
ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float v, boolean b) {
//Here handle your rating bar clicked operation ... get id of clicked rating bar
Log.d("rating_bar_clicked","Rating bar id: "+ratingBar.getId()+ " Value:"+String.valueOf(v));
}
});
return v;
}
}
现在主要只设置适配器列表视图..
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listView);
listView.setAdapter(new RatingListCustomAdapter(this,itemNameList));
请按照下面的链接来演示您在listView中使用评级栏的要求。
http://www.devexchanges.info/2015/11/rating-bar-in-listview-android.html
我已阅读上面的链接和[此链接](http://www.thaicreate.com/mobile/android-vote-rating-php-mysql.html)但在上面的链接问题是我有一个TextView获得从互联网通过json,并在我的链接,我不需要创建另一个布局来填补评级,这意味着,我需要上面的链接工作与json in arraylist在线,并在我的链接我不需要另一个布局, – dondo
该适配器旨在将数据连接到视图。如果您知道MVC,则适配器将Model连接到View,如您可以从该教程的该图片中看到的那样(https://koenig-media.raywenderlich.com/uploads/2016/01/adapter.png)。
为什么我们应该使用适配器是因为它们使生活更轻松。当您考虑“数据”时,您不需要考虑“视图”,只需将数据放入适配器,并在考虑“视图”时,适配器就知道有关“数据”的所有信息。
有一些想法吗?请! – dondo
我刚刚google了一下,发现这个https://www.raywenderlich.com/124438/android-listview-tutorial – hadilq
@hadilq你能解释一下'receipeAdapter'在上面的链接中有什么功能吗?为什么它应该添加'receipeAdapter'? – dondo