There is a spinner, there is also a RecyclerView, through the adapter I add to the RecyclerView TextView (Year) and ProgressBar (sales rating for the year) when choosing in a spiner for example 2 positions (car sales) progressBar should get this position and immediately change. how to implement it? I tried to do so

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { if(position==0) { mCount=10; } mAdapter.notifyDataSetChanged(); } @Override public void onNothingSelected(AdapterView<?> parent) { } }); 

Then I just passed these values, but nothing happened.

 public class PCAdapter extends RecyclerView.Adapter<PCAdapter.MyViewHolder> { private ArrayList<PC> dataSet; private Boolean check=true; public static class MyViewHolder extends RecyclerView.ViewHolder { TextView word,meaning,tdp,CoresThreads,Socket, Segment,Source,tv_progress_horizontal,e1,e2; ProgressBar progressBar1; RelativeLayout expandable,cv1; public MyViewHolder(View itemView) { super(itemView); this.expandable= (RelativeLayout)itemView.findViewById(R.id.expandableLayout); this.cv1= (RelativeLayout) itemView.findViewById(R.id.cv1); this.word= (TextView)itemView.findViewById(R.id.wordtext); this.progressBar1= (ProgressBar) itemView.findViewById(R.id.progressBar1); this.tv_progress_horizontal= (TextView)itemView.findViewById(R.id.tv_progress_horizontal); this.meaning = (TextView) itemView.findViewById(R.id.meaningtext); this.tdp = (TextView) itemView.findViewById(R.id.tdp); this.CoresThreads = (TextView) itemView.findViewById(R.id.CoresThreads); this.Socket = (TextView) itemView.findViewById(R.id.Socket); this.Segment = (TextView) itemView.findViewById(R.id.Segment); this.Source = (TextView) itemView.findViewById(R.id.Source); this.e1 = (TextView) itemView.findViewById(R.id.e1); this.e2 = (TextView) itemView.findViewById(R.id.e2); } } public PCAdapter(ArrayList<PC> data) { this.dataSet = data; } @Override public PCAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { final View view = LayoutInflater.from(parent.getContext()) .inflate(R.layout.card_view_row1, parent, false); final PCAdapter.MyViewHolder myViewHolder = new PCAdapter.MyViewHolder(view); view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(check) { myViewHolder.expandable.setVisibility(View.VISIBLE); myViewHolder.expandable.animate() .alpha(1.0f) .setDuration(1000); check=false; } else{ myViewHolder.cv1.setBackgroundResource(R.color.asa1); myViewHolder.expandable.animate() .alpha(0.0f) .setDuration(000); myViewHolder.expandable.setVisibility(View.GONE); check=true; } } }); return myViewHolder; } @Override public void onBindViewHolder(final PCAdapter.MyViewHolder holder, final int listPosition) { TextView word1= holder.word; TextView tv_progress_horizontal1= holder.tv_progress_horizontal; ProgressBar progressBar1= holder.progressBar1; TextView meaning1 = holder.meaning; TextView tdp1 = holder.tdp; TextView CoresThreads1 = holder.CoresThreads; TextView Socket1 = holder.Socket; TextView Segment1 = holder.Segment; TextView Source1 = holder.Source; TextView e11 = holder.e1; TextView e21 = holder.e2; word1.setText(dataSet.get(listPosition).getWord()); tv_progress_horizontal1.setText(String.valueOf(dataSet.get(listPosition).getF())); progressBar1.setProgress(dataSet.get(listPosition).getProgress()); meaning1.setText(dataSet.get(listPosition).getMeaning()); tdp1.setText(dataSet.get(listPosition).getTdp()); CoresThreads1.setText(dataSet.get(listPosition).getCoresThreads()); Socket1.setText(dataSet.get(listPosition).getSocket()); Segment1.setText(dataSet.get(listPosition).getSegment()); Source1.setText(dataSet.get(listPosition).getSource()); e11.setText(dataSet.get(listPosition).getE1()); e21.setText(dataSet.get(listPosition).getE2()); ProgressBarAnimation anim = new ProgressBarAnimation(progressBar1, 0,dataSet.get(listPosition).getProgress() ); anim.setDuration(1000); progressBar1.startAnimation(anim); } @Override public int getItemCount() { return dataSet.size(); } } 
 public class Activity extends AppCompatActivity { Intent intent;; private int mCount=0; private ArrayList<PC> movieList = new ArrayList<>(); private RecyclerView recyclerView; private PCAdapter mAdapter; PC movie; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.abba); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); if (getSupportActionBar() != null){ getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); } recyclerView = (RecyclerView) findViewById(R.id.recycler_view); mAdapter = new PCAdapter(movieList); recyclerView.setHasFixedSize(true); final RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext()); recyclerView.setLayoutManager(mLayoutManager); recyclerView.addItemDecoration(new DividerItemDecoration(this, LinearLayoutManager.VERTICAL)); recyclerView.setItemAnimator(new DefaultItemAnimator()); recyclerView.setAdapter(mAdapter); final Spinner spinner1 = (Spinner) findViewById(R.id.spinner1); String[] years1 = {"1","2","3","4","5","6"}; ArrayAdapter<String> langAdapter1 = new ArrayAdapter<String>(FilterFinish.this, R.layout.spinner_text, years1 ); langAdapter1.setDropDownViewResource(R.layout.simple_spinner_dropdown); spinner1.setAdapter(langAdapter1); spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { if(position==0) { mCount=10; Toast.makeText(FilterFinish.this, "0", Toast.LENGTH_SHORT).show(); } mAdapter.notifyDataSetChanged(); } @Override public void onNothingSelected(AdapterView<?> parent) { } }); movie = new PC(" ",mCount,mCount, "", "", "", "", "", "","",""); movieList.add(movie); mAdapter.notifyDataSetChanged(); } @Override public boolean onOptionsItemSelected(MenuItem item) { finish(); return super.onOptionsItemSelected(item); } } 

    1 answer 1

    you have not changed the movie list passed to the adapter and therefore the call mAdapter.notifyDataSetChanged (); does not give results.

     @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { if(position==0) { // здесь нужно изменить значения mCount в элементов вашего списка movie } mAdapter.notifyDataSetChanged(); } 
    • do not quite understand. - fcbarcafc
    • email me the data to connect to you through team weaver and help to do. martsinkevych@gmail.com - Andriy Martsinkevych