Я работаю над Android Программированием.
Теперь застрял при попытке установить onclick для моего класса myViewHolder
. После отладки и проверки при нажатии всегда закрывайте приложение.
Вот myViewHolder
класс:
class MyViewHolder extends RecyclerView.ViewHolder
{
TextView movieName;
ImageView movieImagePoster;
TextView movieYear;
RelativeLayout relativeLayout;
public MyViewHolder(View itemView) {
super(itemView);
movieName = (TextView)itemView.findViewById(R.id.movieName);
movieImagePoster = (ImageView)itemView.findViewById(R.id.movieImagePoster);
movieYear = (TextView)itemView.findViewById(R.id.movieYear);
relativeLayout = itemView.findViewById(R.id.relative);
context = itemView.getContext();
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context, movieDetails.class);
context.startActivity(intent);
}
});
}
}
Класс movieDetails
package com.example.netmov;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
public class movieDetails extends AppCompatActivity {
private ImageView imageView;
TextView textView;
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.movie_details);
imageView = findViewById(R.id.detailsMovieImageCover);
textView = findViewById(R.id.detailsMovieDescription);
}
}
и movieDetails.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"
android:id="@+id/constrainLayout">
<ImageView
android:id="@+id/detailsMovieImageCover"
android:layout_width="match_parent"
android:layout_height="350dp"
android:scaleType="centerCrop"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_launcher_background" />
<TextView
android:id="@+id/detailsMovieDescription"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/detailsMovieImageCover"
android:layout_marginStart="16dp"
android:layout_marginLeft="16dp"
android:layout_marginTop="22dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:layout_marginBottom="143dp"
android:text="TextViewTextViewTextViewTextViewTextViewTextViewTextViewTextViewTextView"
android:textSize="18sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/detailsMovieImageCover" />
</androidx.constraintlayout.widget.ConstraintLayout>
Это MainActivity.java
public class MainActivity extends AppCompatActivity {
private RecyclerView MoviesRV;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MoviesRV = findViewById(R.id.listMovieAction);
ambil_data();
}
void ambil_data() {
String link = "http://192.168.183.28/netmov/latest_update.php";
StringRequest respon = new StringRequest(
Request.Method.POST,
link,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject jsonObject = new JSONObject(response);
JSONArray jsonArray = jsonObject.getJSONArray("hasil");
ArrayList<Get_data> list_data;
list_data = new ArrayList<>();
for(int i=0; i<jsonArray.length(); i++){
JSONObject hasil = jsonArray.getJSONObject(i);
String movieName = hasil.getString("movieName");
String movieNameShort = hasil.getString("movieNameShort");
String movieImagePoster = hasil.getString("movieImagePoster");
String movieYear = hasil.getString("movieYear");
list_data.add(new Get_data(
movieName, movieNameShort, movieImagePoster, movieYear
));
}
CustomAdapter adapter = new CustomAdapter(MainActivity.this, list_data);
MoviesRV.setAdapter(adapter);
MoviesRV.setLayoutManager(new LinearLayoutManager(MainActivity.this, LinearLayoutManager.HORIZONTAL, false));
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this, error.getMessage(), Toast.LENGTH_SHORT).show();
}
}
);
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(respon);
}
}
Мой вопрос:
1. Как go movieDetails.class
по клику?
2. Как передать содержимое, например movieName, movieYear, в movieDetails.class
?