我有一个ListView,列表视图包含一个文本字段和一个等级栏。 滚动列表视图时,所选评级消失,评级栏完全空白。
我尝试从listview的setOnclicklistner中的等级栏中获取数据。那没有用。
我的适配器:
public class RatingAdapter extends ArrayAdapter<ReviewDTO> {
@Override
public View getView(int position, View convertView, ViewGroup parent){
View listItem=convertView;
// if(listItem==null){
listItem=LayoutInflater.from(context).inflate(R.layout.question_menu,parent,false);
//}
ReviewDTO currentReview =listOfReview.get(position);
TextView textView=listItem.findViewById(R.id.question);
textView.setText(currentReview.getQuestion());
final RatingBar ratebar=listItem.findViewById(R.id.ratingBar);
ratebar.setRating(currentReview.getRating());
ratebar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(context, " Rating : "+ratebar.getRating(), Toast.LENGTH_SHORT).show();
}
});
return listItem;
}
}
在主要活动中
public class MainActivity extends AppCompatActivity implements RatingDialogListener {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_question);
//setSupportActionBar(toolbar);
listView=findViewById(R.id.list);
//MyDTO here
ratingAdapter=new RatingAdapter(this,reviewList);
listView.setAdapter(ratingAdapter);
FrameLayout footerLayout = (FrameLayout) getLayoutInflater().inflate(R.layout.footerxml,null);
submitButton = (Button) footerLayout.findViewById(R.id.submit);
listView.addFooterView(footerLayout);
}
}
答案 0 :(得分:-1)
@Override
public int getItemViewType(int position)
{
return position;
}
请使用RecyclerView而不是Listview RecyclerView比ListView响应更快