Código de Java - HabilidadesPracticasApp: Aplicación de Tutoriales Prácticos

sin imagen de perfil

HabilidadesPracticasApp: Aplicación de Tutoriales Prácticosgráfica de visualizaciones


Java

Publicado el 5 de Junio del 2023 por Kevin (4 códigos)
329 visualizaciones desde el 5 de Junio del 2023
La clase HabilidadesPracticasApp es una subclase de Application. Se utiliza para realizar configuraciones y inicializaciones necesarias al iniciar la aplicación. En este caso, se puede agregar código adicional dentro del método onCreate() para configurar y inicializar los componentes de la aplicación.

La clase TutorialActivity es una subclase de AppCompatActivity que representa la actividad que muestra los detalles de un tutorial específico. En el método onCreate(), se obtienen los datos del tutorial a través de un Intent y se configuran los componentes de la interfaz de usuario, como TextView, VideoView y RecyclerView. También se muestra la información del tutorial obtenida y se configura el VideoView para reproducir el video del tutorial.

La clase PasosAdapter es una subclase de RecyclerView.Adapter que se utiliza para mostrar la lista de pasos de un tutorial en el RecyclerView de la clase TutorialActivity. Esta clase se encarga de inflar el diseño del elemento de la lista y de vincular los datos de cada paso con la vista correspondiente en el RecyclerView.

La clase Tutorial representa un tutorial específico y contiene los detalles como el título, la descripción, la URL del video y la lista de pasos. Además, tiene un método estático obtenerTutorialDesdeFuenteExterna() que simula la obtención de los datos del tutorial desde una fuente externa, como una API. En este ejemplo, se utiliza un conjunto predefinido de datos estáticos, pero puedes modificar este método para obtener los datos de manera dinámica según tus necesidades.

La clase MainActivity es la actividad principal de la aplicación. En el método onCreate(), se configura el RecyclerView para mostrar la lista de tutoriales obtenida a través del método obtenerTutorialesDesdeFuenteExterna(). También se define el método abrirTutorial() que se utiliza para abrir la actividad TutorialActivity cuando se hace clic en un tutorial en la lista.

La clase TutorialesAdapter es similar a la clase PasosAdapter y se utiliza para mostrar la lista de tutoriales en el RecyclerView de la clase MainActivity. En este adaptador, se infla el diseño del elemento de la lista y se vinculan los datos de cada tutorial con la vista correspondiente en el RecyclerView. Además, se define el comportamiento del clic en un tutorial, que abre la actividad TutorialActivity con el tutorial seleccionado.

En resumen, este código representa una aplicación de tutoriales prácticos donde los usuarios pueden ver una lista de tutoriales en la actividad principal (MainActivity) y obtener más detalles de cada tutorial en la actividad TutorialActivity. El código se encarga de mostrar los datos de los tutoriales, reproducir videos y mostrar la lista de pasos asociados con cada tutorial. Puedes personalizar y expandir este código según tus necesidades para crear una aplicación completa de tutoriales prácticos.

Requerimientos

// Importar librerías necesarias

public class HabilidadesPracticasApp extends Application {
@Override
public void onCreate() {
super.onCreate();
// Configurar y inicializar componentes de la aplicación
}
}

public class TutorialActivity extends AppCompatActivity {
private TextView tituloTextView;
private TextView descripcionTextView;
private VideoView videoView;
private RecyclerView pasosRecyclerView;
private PasosAdapter pasosAdapter;

private Tutorial tutorial;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tutorial);

// Obtener datos del tutorial desde una fuente externa (por ejemplo, una API)
int tutorialId = getIntent().getIntExtra("tutorial_id", -1);
tutorial = Tutorial.obtenerTutorialDesdeFuenteExterna(tutorialId);

// Configurar componentes de la interfaz de usuario
tituloTextView = findViewById(R.id.tituloTextView);
descripcionTextView = findViewById(R.id.descripcionTextView);
videoView = findViewById(R.id.videoView);
pasosRecyclerView = findViewById(R.id.pasosRecyclerView);

// Configurar el VideoView para reproducir el tutorial en video
MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(videoView);
videoView.setMediaController(mediaController);
videoView.setVideoURI(Uri.parse(tutorial.getUrlVideo()));

// Configurar el RecyclerView para mostrar los pasos del tutorial
pasosAdapter = new PasosAdapter(tutorial.getPasos());
pasosRecyclerView.setLayoutManager(new LinearLayoutManager(this));
pasosRecyclerView.setAdapter(pasosAdapter);

// Mostrar los datos del tutorial en la interfaz de usuario
tituloTextView.setText(tutorial.getTitulo());
descripcionTextView.setText(tutorial.getDescripcion());
}
}

public class PasosAdapter extends RecyclerView.Adapter<PasosAdapter.PasoViewHolder> {
private List<String> pasos;

public PasosAdapter(List<String> pasos) {
this.pasos = pasos;
}

@NonNull
@Override
public PasoViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_paso, parent, false);
return new PasoViewHolder(view);
}

@Override
public void onBindViewHolder(@NonNull PasoViewHolder holder, int position) {
String paso = pasos.get(position);
holder.pasoTextView.setText(paso);
}

@Override
public int getItemCount() {
return pasos.size();
}

public static class PasoViewHolder extends RecyclerView.ViewHolder {
private TextView pasoTextView;

public PasoViewHolder(@NonNull View itemView) {
super(itemView);
pasoTextView = itemView.findViewById(R.id.pasoTextView);
}
}
}

public class Tutorial {
private int tutorialId;
private String titulo;
private String descripcion;
private String urlVideo;
private List<String> pasos;

public Tutorial(int tutorialId, String titulo, String descripcion, String urlVideo, List<String> pasos) {
this.tutorialId = tutorialId;
this.titulo = titulo;
this.descripcion = descripcion;
this.urlVideo = urlVideo;
this.pasos = pasos;
}

public int getTutorialId() {
return tutorialId;
}

public String getTitulo() {
return titulo;
}

public String getDescripcion() {
return descripcion;
}

public String getUrlVideo() {
return urlVideo;
}

public List<String> getPasos() {
return pasos;
}

public static Tutorial obtenerTutorialDesdeFuenteExterna(int tutorialId) {
// Lógica para obtener los datos del tutorial desde una fuente externa (por ejemplo, una API)
// Aquí puedes hacer una llamada a la API o acceder a una base de datos para obtener los datos del tutorial correspondiente al tutorialId proporcionado
// Luego, puedes construir y devolver un objeto Tutorial con los datos obtenidos
// Este método debe ser implementado según tus necesidades y el medio de obtención de datos que estés utilizando
// Aquí se muestra un ejemplo simple utilizando datos estáticos

String titulo = "Tutorial de cocina";
String descripcion = "Aprende a cocinar una deliciosa pasta";
String urlVideo = "https://www.example.com/video.mp4";
List<String> pasos = Arrays.asList(
"Cocer la pasta en agua con sal",
"Preparar la salsa de tomate",
"Mezclar la pasta con la salsa",
"Servir caliente"
);

return new Tutorial(tutorialId, titulo, descripcion, urlVideo, pasos);
}
}

public class MainActivity extends AppCompatActivity {
private RecyclerView tutorialesRecyclerView;
private TutorialesAdapter tutorialesAdapter;

private List<Tutorial> tutoriales;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

tutorialesRecyclerView = findViewById(R.id.tutorialesRecyclerView);

// Configurar el RecyclerView para mostrar la lista de tutoriales
tutoriales = obtenerTutorialesDesdeFuenteExterna();
tutorialesAdapter = new TutorialesAdapter(tutoriales);
tutorialesRecyclerView.setLayoutManager(new LinearLayoutManager(this));
tutorialesRecyclerView.setAdapter(tutorialesAdapter);
}

private List<Tutorial> obtenerTutorialesDesdeFuenteExterna() {
// Lógica para obtener la lista de tutoriales desde una fuente externa (por ejemplo, una API)
// Aquí puedes hacer una llamada a la API o acceder a una base de datos para obtener los datos de los tutoriales
// Luego, puedes construir y devolver una lista de objetos Tutorial con los datos obtenidos
// Este método debe ser implementado según tus necesidades y el medio de obtención de datos que estés utilizando
// Aquí se muestra un ejemplo simple utilizando datos estáticos

List<Tutorial> tutoriales = new ArrayList<>();
tutoriales.add(new Tutorial(1, "Tutorial de cocina", "Aprende a cocinar una deliciosa pasta", "https://www.example.com/video1.mp4", Arrays.asList("Cocer la pasta en agua con sal", "Preparar la salsa de tomate", "Mezclar la pasta con la salsa", "Servir caliente")));
tutoriales.add(new Tutorial(2, "Tutorial de jardinería", "Descubre cómo cultivar hermosas plantas en tu jardín", "https://www.example.com/video2.mp4", Arrays.asList("Preparar el suelo", "Plantar las semillas", "Regar regularmente", "Podar las plantas")));
// Agregar más tutoriales según sea necesario

return tutoriales;
}

private void abrirTutorial(int tutorialId) {
Intent intent = new Intent(MainActivity.this, TutorialActivity.class);
intent.putExtra("tutorial_id", tutorialId);
startActivity(intent);
}
}

public class TutorialesAdapter extends RecyclerView.Adapter<TutorialesAdapter.TutorialViewHolder> {
private List<Tutorial> tutoriales;

public TutorialesAdapter(List<Tutorial> tutoriales) {
this.tutoriales = tutoriales;
}

@NonNull
@Override
public TutorialViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_tutorial, parent, false);
return new TutorialViewHolder(view);
}

@Override
public void onBindViewHolder(@NonNull TutorialViewHolder holder, int position) {
Tutorial tutorial = tutoriales.get(position);
holder.tituloTextView.setText(tutorial.getTitulo());
holder.descripcionTextView.setText(tutorial.getDescripcion());
holder.itemView.setOnClickListener(v -> {
// Abrir el tutorial correspondiente al hacer clic en el elemento del RecyclerView
abrirTutorial(tutorial.getTutorialId());
});
}

@Override
public int getItemCount() {
return tutoriales.size();
}

public static class TutorialViewHolder extends RecyclerView.ViewHolder {
private TextView tituloTextView;
private TextView descripcionTextView;

public TutorialViewHolder(@NonNull View itemView) {
super(itemView);
tituloTextView = itemView.findViewById(R.id.tituloTextView);
descripcionTextView = itemView.findViewById(R.id.descripcionTextView);
}
}
}
1
 

1.0

Publicado el 5 de Junio del 2023gráfica de visualizaciones de la versión: 1.0
330 visualizaciones desde el 5 de Junio del 2023
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
// Importar librerías necesarias
 
public class HabilidadesPracticasApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        // Configurar y inicializar componentes de la aplicación
    }
}
 
public class TutorialActivity extends AppCompatActivity {
    private TextView tituloTextView;
    private TextView descripcionTextView;
    private VideoView videoView;
    private RecyclerView pasosRecyclerView;
    private PasosAdapter pasosAdapter;
 
    private Tutorial tutorial;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tutorial);
 
        // Obtener datos del tutorial desde una fuente externa (por ejemplo, una API)
        int tutorialId = getIntent().getIntExtra("tutorial_id", -1);
        tutorial = Tutorial.obtenerTutorialDesdeFuenteExterna(tutorialId);
 
        // Configurar componentes de la interfaz de usuario
        tituloTextView = findViewById(R.id.tituloTextView);
        descripcionTextView = findViewById(R.id.descripcionTextView);
        videoView = findViewById(R.id.videoView);
        pasosRecyclerView = findViewById(R.id.pasosRecyclerView);
 
        // Configurar el VideoView para reproducir el tutorial en video
        MediaController mediaController = new MediaController(this);
        mediaController.setAnchorView(videoView);
        videoView.setMediaController(mediaController);
        videoView.setVideoURI(Uri.parse(tutorial.getUrlVideo()));
 
        // Configurar el RecyclerView para mostrar los pasos del tutorial
        pasosAdapter = new PasosAdapter(tutorial.getPasos());
        pasosRecyclerView.setLayoutManager(new LinearLayoutManager(this));
        pasosRecyclerView.setAdapter(pasosAdapter);
 
        // Mostrar los datos del tutorial en la interfaz de usuario
        tituloTextView.setText(tutorial.getTitulo());
        descripcionTextView.setText(tutorial.getDescripcion());
    }
}
 
public class PasosAdapter extends RecyclerView.Adapter<PasosAdapter.PasoViewHolder> {
    private List<String> pasos;
 
    public PasosAdapter(List<String> pasos) {
        this.pasos = pasos;
    }
 
    @NonNull
    @Override
    public PasoViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_paso, parent, false);
        return new PasoViewHolder(view);
    }
 
    @Override
    public void onBindViewHolder(@NonNull PasoViewHolder holder, int position) {
        String paso = pasos.get(position);
        holder.pasoTextView.setText(paso);
    }
 
    @Override
    public int getItemCount() {
        return pasos.size();
    }
 
    public static class PasoViewHolder extends RecyclerView.ViewHolder {
        private TextView pasoTextView;
 
        public PasoViewHolder(@NonNull View itemView) {
            super(itemView);
            pasoTextView = itemView.findViewById(R.id.pasoTextView);
        }
    }
}
 
public class Tutorial {
    private int tutorialId;
    private String titulo;
    private String descripcion;
    private String urlVideo;
    private List<String> pasos;
 
    public Tutorial(int tutorialId, String titulo, String descripcion, String urlVideo, List<String> pasos) {
        this.tutorialId = tutorialId;
        this.titulo = titulo;
        this.descripcion = descripcion;
        this.urlVideo = urlVideo;
        this.pasos = pasos;
    }
 
    public int getTutorialId() {
        return tutorialId;
    }
 
    public String getTitulo() {
        return titulo;
    }
 
    public String getDescripcion() {
        return descripcion;
    }
 
    public String getUrlVideo() {
        return urlVideo;
    }
 
    public List<String> getPasos() {
        return pasos;
    }
 
    public static Tutorial obtenerTutorialDesdeFuenteExterna(int tutorialId) {
        // Lógica para obtener los datos del tutorial desde una fuente externa (por ejemplo, una API)
        // Aquí puedes hacer una llamada a la API o acceder a una base de datos para obtener los datos del tutorial correspondiente al tutorialId proporcionado
        // Luego, puedes construir y devolver un objeto Tutorial con los datos obtenidos
        // Este método debe ser implementado según tus necesidades y el medio de obtención de datos que estés utilizando
        // Aquí se muestra un ejemplo simple utilizando datos estáticos
 
        String titulo = "Tutorial de cocina";
        String descripcion = "Aprende a cocinar una deliciosa pasta";
        String urlVideo = "https://www.example.com/video.mp4";
        List<String> pasos = Arrays.asList(
                "Cocer la pasta en agua con sal",
                "Preparar la salsa de tomate",
                "Mezclar la pasta con la salsa",
                "Servir caliente"
        );
 
        return new Tutorial(tutorialId, titulo, descripcion, urlVideo, pasos);
    }
}
 
public class MainActivity extends AppCompatActivity {
    private RecyclerView tutorialesRecyclerView;
    private TutorialesAdapter tutorialesAdapter;
 
    private List<Tutorial> tutoriales;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        tutorialesRecyclerView = findViewById(R.id.tutorialesRecyclerView);
 
        // Configurar el RecyclerView para mostrar la lista de tutoriales
        tutoriales = obtenerTutorialesDesdeFuenteExterna();
        tutorialesAdapter = new TutorialesAdapter(tutoriales);
        tutorialesRecyclerView.setLayoutManager(new LinearLayoutManager(this));
        tutorialesRecyclerView.setAdapter(tutorialesAdapter);
    }
 
    private List<Tutorial> obtenerTutorialesDesdeFuenteExterna() {
        // Lógica para obtener la lista de tutoriales desde una fuente externa (por ejemplo, una API)
        // Aquí puedes hacer una llamada a la API o acceder a una base de datos para obtener los datos de los tutoriales
        // Luego, puedes construir y devolver una lista de objetos Tutorial con los datos obtenidos
        // Este método debe ser implementado según tus necesidades y el medio de obtención de datos que estés utilizando
        // Aquí se muestra un ejemplo simple utilizando datos estáticos
 
        List<Tutorial> tutoriales = new ArrayList<>();
        tutoriales.add(new Tutorial(1, "Tutorial de cocina", "Aprende a cocinar una deliciosa pasta", "https://www.example.com/video1.mp4", Arrays.asList("Cocer la pasta en agua con sal", "Preparar la salsa de tomate", "Mezclar la pasta con la salsa", "Servir caliente")));
        tutoriales.add(new Tutorial(2, "Tutorial de jardinería", "Descubre cómo cultivar hermosas plantas en tu jardín", "https://www.example.com/video2.mp4", Arrays.asList("Preparar el suelo", "Plantar las semillas", "Regar regularmente", "Podar las plantas")));
        // Agregar más tutoriales según sea necesario
 
        return tutoriales;
    }
 
    private void abrirTutorial(int tutorialId) {
        Intent intent = new Intent(MainActivity.this, TutorialActivity.class);
        intent.putExtra("tutorial_id", tutorialId);
        startActivity(intent);
    }
}
 
public class TutorialesAdapter extends RecyclerView.Adapter<TutorialesAdapter.TutorialViewHolder> {
    private List<Tutorial> tutoriales;
 
    public TutorialesAdapter(List<Tutorial> tutoriales) {
        this.tutoriales = tutoriales;
    }
 
    @NonNull
    @Override
    public TutorialViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_tutorial, parent, false);
        return new TutorialViewHolder(view);
    }
 
    @Override
    public void onBindViewHolder(@NonNull TutorialViewHolder holder, int position) {
        Tutorial tutorial = tutoriales.get(position);
        holder.tituloTextView.setText(tutorial.getTitulo());
        holder.descripcionTextView.setText(tutorial.getDescripcion());
        holder.itemView.setOnClickListener(v -> {
            // Abrir el tutorial correspondiente al hacer clic en el elemento del RecyclerView
            abrirTutorial(tutorial.getTutorialId());
        });
    }
 
    @Override
    public int getItemCount() {
        return tutoriales.size();
    }
 
    public static class TutorialViewHolder extends RecyclerView.ViewHolder {
        private TextView tituloTextView;
        private TextView descripcionTextView;
 
        public TutorialViewHolder(@NonNull View itemView) {
            super(itemView);
            tituloTextView = itemView.findViewById(R.id.tituloTextView);
            descripcionTextView = itemView.findViewById(R.id.descripcionTextView);
        }
    }
}



Comentarios sobre la versión: 1.0 (0)


No hay comentarios
 

Comentar la versión: 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s7370