在ListView中滚动时,评级栏值消失

时间:2019-05-25 12:32:08

标签: java android listview

我有一个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);


    }


}

1 个答案:

答案 0 :(得分:-1)

@Override
public int getItemViewType(int position)
{
    return position;
}

请使用RecyclerView而不是Listview RecyclerView比ListView响应更快