Estoy después de una serie de la creación de aplicaciones Android Studio en YouTube aquí: https://www.youtube.com/watch?v=reSPN7mgshI
He creado un archivo de diseño 'note_item.xml' que utiliza CardView para establecer diseños de tarjeta que se pondrán en un RecyclerView en mi archivo 'activity_main.xml'.
Mi clase 'NoteAdapter.java' obtiene los datos de mi nota objetos de una lista y utiliza los datos para crear cardViews que ser puesto en el RecyclerView.
El problema que estoy teniendo es que uno de mis métodos no reconocerá mi archivo 'note_item.xml'. Me aparece un error que dice "No se puede resolver el símbolo 'note_item' Crear archivo de recursos de diseño 'note_item.xml'". Ya tengo un archivo note_item.xml, como se puede ver en la imagen en la parte inferior.
Podría ser que el elemento raíz note_item.xml momento de la creación se establece en 'androidx.cardview.widget.CardView'? La persona en el video todavía no está utilizando AndroidX por lo que yo puedo ver.
Aquí está el código ...
package com.example.libraryroomapp;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.ArrayList;
import java.util.List;
/* NoteAdapter gets data from Note objects into the RecyclerView items
* */
public class NoteAdapter extends RecyclerView.Adapter<NoteAdapter.NoteHolder> {
private List<Note> notes = new ArrayList<>();
@NonNull
@Override
//method to create and return a NoteHolder
public NoteHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.note_item, parent, false);
return new NoteHolder(itemView);
}
@Override
public void onBindViewHolder(@NonNull NoteHolder holder, int position) {
Note currentNote = notes.get(position);
holder.textViewTitle.setText(currentNote.getTitle());
holder.textViewDescription.setText(currentNote.getDescription());
holder.textViewPriority.setText(String.valueOf(currentNote.getPriority()));
}
@Override
public int getItemCount() {
return notes.size();
}
public void setNotes(List<Note> notes) {
this.notes = notes;
notifyDataSetChanged();
}
//ViewHolder class holds the views in our single recyclerView items
class NoteHolder extends RecyclerView.ViewHolder {
private TextView textViewTitle;
private TextView textViewDescription;
private TextView textViewPriority;
//constructor
public NoteHolder(View itemView) {
super(itemView);
textViewTitle = itemView.findViewById(R.id.text_view_title);
textViewDescription = itemView.findViewById(R.id.text_view_description);
textViewPriority = itemView.findViewById(R.id.text_view_priority);
}
}
}
El código para mi note_item.xml es aquí también.
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8dp">
<TextView
android:id="@+id/text_view_priority"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:text="1"
android:textAppearance="@style/TextAppearance.AppCompat.Large" />
<TextView
android:id="@+id/text_view_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_toStartOf="@id/text_view_priority"
android:ellipsize="end"
android:maxLines="1"
android:text="Title"
android:textAppearance="@style/TextAppearance.AppCompat.Large" />
<TextView
android:id="@+id/text_view_description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/text_view_title"
android:text="Description" />
</RelativeLayout>
</androidx.cardview.widget.CardView>
Tal problema se produce periódicamente en Android Studio. Basta con hacer clic a reconstruir el proyecto o salga y vuelva a entrar en el estudio androide. Y tratar de generar apk. Si se construye con éxito, entonces no hay ningún problema. Y si había un error, el apk simplemente no se generará.