Está en la página 1de 8

TABLAYOUT Y VIEWPAGER2 CON ROOM EN ANDROID STUDIO Y JAVA

TABLAYOUT Y VIEWPAGER2 CON ROOM DATABASE EN


ANDROID STUDIO Y JAVA
En el archive build.gradle(Module)

// Room
implementation "androidx.room:room-runtime:2.2.5"
annotationProcessor "androidx.room:room-
compiler:2.2.5"

PAQUETE: Entidades
CLASE: Empleados.java

@Entity(tableName = "Empleados")
public class Empleados {
@PrimaryKey(autoGenerate = false)
@ColumnInfo(name = "codemp")
@NonNull
private String codemp;

@ColumnInfo(name = "nomemp")
private String nomemp;

@ColumnInfo(name = "cargoemp")
private String cargoemp;

//Constructores y getter y setter


}

DOCENTE - JULIO CESAR LIÑAN RODRIGUEZ 1


TABLAYOUT Y VIEWPAGER2 CON ROOM EN ANDROID STUDIO Y JAVA

PAQUETE: DAO
INTERFACE: EmpleadosDAO.java

@Dao
public interface EmpleadosDAO {

@Insert
public void InsertarEmpleado(Empleados obj);

@Query("select * from Empleados")


public List<Empleados> ListarEmpleados();

@Query("select count(*) as cantidad from


Empleados")
public int CantidadEmpleados();

@Query("select * from Empleados where


cargoemp=:cargo")
public List<Empleados> ListarEmpleadosCargo(String
cargo);
}

PAQUETE: Database
CLASE: AppDatabase.java

@Database(entities = {Empleados.class}, version = 1)


public abstract class AppDatabase extends RoomDatabase
{
private static AppDatabase INSTANCE;
public abstract EmpleadosDAO empleadosdao();

public static AppDatabase getINSTANCE(Context


contexto) {
if (INSTANCE == null){
INSTANCE = Room.databaseBuilder(
contexto.getApplicationContext(),
AppDatabase.class, "BDEmpleados")
.allowMainThreadQueries()
.build();
}
return INSTANCE;
DOCENTE - JULIO CESAR LIÑAN RODRIGUEZ 2
TABLAYOUT Y VIEWPAGER2 CON ROOM EN ANDROID STUDIO Y JAVA

}
}

Modificar en layout activity_fragment_tab3, agregando un Nuevo EditText


con el nombre EDTCARGOEMP, cambiar al EditText EDTCODEMP para que
ingrese solo texto (inputType = textPersonName)

Agregar un nuevo activity FragmentTab4 y en su layout


activity_fragment_tab4 agregar un ListView con el nombre LVEMPLEADOS

Agregar un nuevo recurso de tipo layout con el nombre ítem_empleado.xml

DOCENTE - JULIO CESAR LIÑAN RODRIGUEZ 3


TABLAYOUT Y VIEWPAGER2 CON ROOM EN ANDROID STUDIO Y JAVA

PAQUETE: Adaptadores
CLASE: AdaptadorEmpleadosList.java

public class AdaptadorEmpleadosList extends


ArrayAdapter<Empleados> {

Context mi_contexto;
int mi_layout;
List<Empleados> mi_lista;

public AdaptadorEmpleadosList( Context context,


int resource, List<Empleados> objects) {
super(context, resource, objects);
mi_contexto = context;
mi_layout = resource;
mi_lista = objects;
}

@NonNull @Override
public View getView(int position,
@Nullable View convertView,
@NonNull ViewGroup parent) {

View vista = LayoutInflater.from(mi_contexto)


.inflate(mi_layout, null);

Empleados obj = mi_lista.get(position);

TextView tvnombre =
vista.findViewById(R.id.TVNOMBRE);
TextView tvcodigo =
vista.findViewById(R.id.TVCODIGO);
TextView tvcargo =
vista.findViewById(R.id.TVCARGO);

tvnombre.setText(obj.getNomemp());
tvcodigo.setText("Codigo: " + obj.getCodemp());
tvcargo.setText("Cargo: " + obj.getCargoemp());

return vista;
}
}
DOCENTE - JULIO CESAR LIÑAN RODRIGUEZ 4
TABLAYOUT Y VIEWPAGER2 CON ROOM EN ANDROID STUDIO Y JAVA

Codigo del FragmentTab3.java

public class FragmentTab3 extends Fragment {

// Controles
EditText edtcod, edtnom, edtcargo;
Button btnnuevo, btngrabar;

@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle
savedInstanceState) {
// Inflate the layout for this fragment
View vista =
inflater.inflate(R.layout.fragment_tab3, container,
false);
// Enlazar los Controles
EnlazarControles(vista);
// establecer el evento onClickListener a
btnnuevo
btnnuevo.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
edtcod.setText("");
edtnom.setText("");
edtcargo.setText("");
edtcod.requestFocus();
}
});
// establecer el evento onClickListener a
btngrabar
btngrabar.setOnClickListener(new
View.OnClickListener() {
@Override
public void onClick(View v) {
Empleados obj = new
Empleados(edtcod.getText().toString(),
edtnom.getText().toString(),

edtcargo.getText().toString());
DOCENTE - JULIO CESAR LIÑAN RODRIGUEZ 5
TABLAYOUT Y VIEWPAGER2 CON ROOM EN ANDROID STUDIO Y JAVA

AppDatabase.getINSTANCE(getContext().getApplicationCon
text())

.empleadosdao().InsertarEmpleado(obj);

String mensaje = "El Empleado: " +


edtnom.getText().toString()+
" fué agregado correctamente";
//
Toast.makeText(getContext(), mensaje,
Toast.LENGTH_SHORT).show();

int cantidad =
AppDatabase.getINSTANCE(getContext().getApplicationCon
text())

.empleadosdao().CantidadEmpleados();

Toast.makeText(getContext(),
"Cantidad de Empleados: " +
cantidad,
Toast.LENGTH_SHORT).show();

}
});
//
return vista;
}

void EnlazarControles(View vista)


{
edtcod = vista.findViewById(R.id.EDTCODEMP);
edtnom = vista.findViewById(R.id.EDTNOMEMP);
edtcargo =
vista.findViewById(R.id.EDTCARGOEMP);
btnnuevo = vista.findViewById(R.id.BTNNUEVO);
btngrabar =
vista.findViewById(R.id.BTNGRABAR);
}
}
DOCENTE - JULIO CESAR LIÑAN RODRIGUEZ 6
TABLAYOUT Y VIEWPAGER2 CON ROOM EN ANDROID STUDIO Y JAVA

Codigo del FragmentTab4.java

public class FragmentTab4 extends Fragment {

ListView lvemp;

@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle
savedInstanceState) {
// Inflate the layout for this fragment
View vista =
inflater.inflate(R.layout.fragment_tab4, container,
false);

lvemp = vista.findViewById(R.id.LVEMPLEADOS);

ListarEmpleados();

return vista;
}

void ListarEmpleados()
{
List<Empleados> lista = new ArrayList<>();

lista =
AppDatabase.getINSTANCE(getContext().getApplicationCon
text())
.empleadosdao().ListarEmpleados();

AdaptadorEmpleadosList adaptador = new


AdaptadorEmpleadosList(
getContext(),
R.layout.item_empleado,
lista
);

lvemp.setAdapter(adaptador);
}

DOCENTE - JULIO CESAR LIÑAN RODRIGUEZ 7


TABLAYOUT Y VIEWPAGER2 CON ROOM EN ANDROID STUDIO Y JAVA

@Override
public void onResume() {
super.onResume();
ListarEmpleados();
}
}

DOCENTE - JULIO CESAR LIÑAN RODRIGUEZ 8

También podría gustarte