Я пытаюсь реализовать получение данных из базы данных в виде переработчика, но окно запуска показывает, что адаптер не подключен. Я просмотрел различные учебные пособия, но ничего не помогает. Я новичок в программировании Android. Пожалуйста, помогите мне узнать и исправить мои ошибки. Код выглядит следующим образом:
public class RecycleviewAdapter extends RecyclerView.Adapter<RecycleviewAdapter.RecyclerViewHolder>{
private Context mContext;
private Cursor mCursor;
public RecycleviewAdapter(Context context ,Cursor cursor){
mContext= context;
mCursor =cursor;
}
public class RecyclerViewHolder extends RecyclerView.ViewHolder{
public TextView time_data1;
public TextView activity_data;
public TextView location_data;
public RecyclerViewHolder(@NonNull View itemView) {
super(itemView);
location_data=itemView.findViewById(R.id.location_data);
activity_data=itemView.findViewById(R.id.activity_data);
time_data1=itemView.findViewById(R.id.time_data1);
}
}
@NonNull
@Override
public RecyclerViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(mContext);
View view=inflater.inflate(R.layout.recycle_item,parent,false);
return new RecyclerViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull RecyclerViewHolder holder, int position) {
Package pkg = new Package();
if(!mCursor.move(position)){
return;
}
String time=mCursor.getString(1);
String name=mCursor.getString(2);
holder.location_data.setText(name);
holder.time_data1.setText(time);
if(pkg.getDst().equals(mCursor.getString(2))){
holder.activity_data.setText("Delivered");
}
else {
holder.activity_data.setText("In Transit");
}
}
@Override
public int getItemCount() {
return mCursor.getCount() ;
}
public void swapCursor(Cursor newCursor){
if(mCursor!=null){
mCursor.close();
}
mCursor=newCursor;
if(newCursor!=null){
notifyDataSetChanged();
}
}
}
Для класса занятий
public class Track extends AppCompatActivity {
Database db = new Database(MySuperApplication.getContext());
private static final String TAG="MainActivity";
private RecycleviewAdapter mAdapter;
private TextView track_data;
private Button track_button;
private TextView textdata;
private TextView textdata2;
private TextView textdata3;
private TextView location;
// private TextView location_data;
// private TextView time_data1;
// private TextView activity_data;
// private TextView activity;
private TextView time;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_track);
textdata= findViewById(R.id.textdata);
track_data=findViewById(R.id.title_track);
track_button= findViewById(R.id.trackbutton);
track_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(track_data.getText().toString().isEmpty()) {
openDialog1();
}
else{
Database db = new Database(MySuperApplication.getContext());
SQLiteDatabase databse=db.getReadableDatabase();
Cursor cursor = databse.rawQuery("Select * from tracking where track_id= ?",new String[]{track_data.getText().toString()});
// Cursor cursor = db.retrieveData();
Package pkg = new Package();
while(cursor.moveToNext()) {
pkg.setId(cursor.getString(0));
pkg.setSrc(cursor.getString(1));
pkg.setDst(cursor.getString(2));
pkg.setDimen(cursor.getString(3));
pkg.setWeight(cursor.getString(4));
pkg.setCreated(cursor.getString(5));
Toast.makeText(getApplicationContext(),"data"+cursor.getString(1),Toast.LENGTH_LONG).show();
}
Cursor cursor1 =databse.rawQuery("select * from track_info where track_id1 = ? order by name desc ",new String[]{pkg.getId()});
while (cursor1.moveToNext()){
RecyclerView recyclerView= findViewById(R.id.recycleview);
recyclerView.setLayoutManager(new LinearLayoutManager(MySuperApplication.getContext()));
mAdapter= new RecycleviewAdapter(MySuperApplication.getContext(),cursor1);
// Toast.makeText(getApplicationContext(),"data2"+cursor1.getString(cursor1.getColumnIndex(String.valueOf(1))),Toast.LENGTH_LONG).show();
}
Toast.makeText(getApplicationContext(),"data2"+pkg.getId(),Toast.LENGTH_LONG).show();
// Cursor cursor1= databse.rawQuery("select * from track_info where track_id = ? order by name desc",new String[]{pkg.getId()});
RelativeLayout relative= findViewById(R.id.relativeLayout1);
textdata2= findViewById(R.id.textdata2);
textdata3= findViewById(R.id.textdata3);
textdata2.setText("Dimension: "+pkg.getDimen()+" cm");
textdata3.setText("Weight: "+pkg.getWeight()+" kgs");
}
}
});
}
private void openDialog1() {
dialog dialog= new dialog();
dialog.show(getSupportFragmentManager(),"dialog");
}
}
Recycler xml:
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycleview"
android:layout_width="408dp"
android:layout_height="453dp"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentBottom="true"
android:layout_marginStart="3dp"
android:layout_marginLeft="3dp"
android:layout_marginBottom="0dp" />
recycle_item. xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="#ffffff"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0">
<TextView
android:id="@+id/location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="11dp"
android:text="Location" />
<TextView
android:id="@+id/location_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginStart="71dp"
android:layout_marginLeft="71dp"
android:layout_marginTop="11dp"
android:text="TextView" />
<TextView
android:id="@+id/activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="30dp"
android:text="Activity" />
<TextView
android:id="@+id/activity_data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginStart="71dp"
android:layout_marginLeft="71dp"
android:layout_marginTop="30dp"
android:text="TextView" />
<TextView
android:id="@+id/time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="50dp"
android:text="Date/Time" />
<TextView
android:id="@+id/time_data1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginStart="71dp"
android:layout_marginLeft="71dp"
android:layout_marginTop="50dp"
/>
</RelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout>