эта треска показывает список всех массивов. Я хочу показать первую строку в списке массивов, а затем нажмите кнопку показать строку номер два и нажмите еще раз, чтобы показать строку номер три, а затем можете сделать это
public void onClick (View v) {babyViewModel.getLetterRecourceID ();
этот код отображает список всех массивов. Я хочу показать первую строку в списке массивов, а затем нажмите кнопку показать номер строки два и нажмите еще раз, чтобы показать номер строки три, а затем можете это сделать
треска в activity_english отправляет первый код
activity_englishletters
package com.example.learnn;
import androidx.appcompat.app.AppCompatActivity;
import androidx.databinding.DataBindingUtil;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProviders;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.learnn.databinding.ActivityEnglishcolorsBinding;
import com.example.learnn.databinding.ActivityEnglishlettersBinding;
import com.example.learnn.ui.BabyListAdapter;
import com.example.learnn.ui.BabyModel;
import com.example.learnn.ui.BabyViewModel;
import java.util.ArrayList;
public class EnglishlettersActivity extends AppCompatActivity {
BabyViewModel babyViewModel;
ImageView imagee,next;
RecyclerView recycler;
private int index = 0;
ArrayList arrayList,letterList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityEnglishlettersBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_englishletters);
imagee = (ImageView)findViewById(R.id.imagee);
recycler = (RecyclerView)findViewById(R.id.recycler);
final BabyListAdapter adapter = new BabyListAdapter();
recycler.setAdapter(adapter);
recycler.setLayoutManager(new LinearLayoutManager(this));
babyViewModel = ViewModelProviders.of(this).get(BabyViewModel.class);
babyViewModel.letterRecourceIDMutableLiveData.observe(this, new Observer<ArrayList<BabyModel>>() {
@Override
public void onChanged(ArrayList<BabyModel> babyModels) {
adapter.setList(babyModels);
}
});
binding.next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
babyViewModel.getLetterRecourceID();
index = index+1;
if (index < letterList.size()) {
imagee.setBackgroundResource( (int) letterList.get( index ) );
return;
}
if (index == letterList.size()) {
imagee.setBackgroundResource( (int) letterList.get( 0 ) );
index = 0;
}
}
});
}
}
viewModel
package com.example.learnn.ui;
import com.example.learnn.R;
import java.util.ArrayList;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
public class BabyViewModel extends ViewModel {
ArrayList arrayList;
public MutableLiveData<ArrayList<BabyModel>> letterRecourceIDMutableLiveData = new MutableLiveData<>();
public void getLetterRecourceID(){
letterRecourceIDMutableLiveData.setValue(getDataFromDatabase());
}
private ArrayList<BabyModel> getDataFromDatabase(){
ArrayList<BabyModel> arrayList = new ArrayList<>();
arrayList.add(new BabyModel(R.drawable.a));
arrayList.add(new BabyModel(R.drawable.b));
arrayList.add(new BabyModel(R.drawable.c));
arrayList.add(new BabyModel(R.drawable.d));
arrayList.add(new BabyModel(R.drawable.e));
return arrayList;
}
}
adapter
package com.example.learnn.ui;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.example.learnn.R;
import java.util.ArrayList;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
public class BabyListAdapter extends RecyclerView.Adapter<BabyListAdapter.BabyViewHolder> {
private ArrayList<BabyModel> letterList = new ArrayList<>();
@NonNull
@Override
public BabyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new BabyViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.litter_list_item, parent, false));
}
@Override
public void onBindViewHolder(@NonNull BabyViewHolder holder, int position) {
holder.image.setImageResource(letterList.get(position).getLetterRecourceID());
}
@Override
public int getItemCount() {
return letterList.size();
}
public void setList(ArrayList<BabyModel> letterList) {
this.letterList = letterList;
notifyDataSetChanged();
}
public class BabyViewHolder extends RecyclerView.ViewHolder {
ImageView image;
public BabyViewHolder(@NonNull View itemView) {
super(itemView);
image = itemView.findViewById(R.id.imagee);
}
}
}