Я создаю приложение для обоев.Приложение имеет вид переработчика с изображением и кнопкой на нем в каждом элементе списка.Нажатие кнопки используется для установки обоев соответствующего изображения на домашний экран.Я успешно настроил вид рециркулятора, но у меня проблема с установкой обоев при нажатии кнопки.
Это мой activity_main.xml код
<android.support.v7.widget.RecyclerView
android:id="@+id/recycleView"
android:layout_height="match_parent"
android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
</android.support.v7.widget.RecyclerView>
Этоmy MainActivity.java file
public class MainActivity extends AppCompatActivity {
RecyclerView recyclerView;
int images[] = {R.drawable.pic1, R.drawable.pic2, R.drawable.pic3, R.drawable.pic4, R.drawable.pic5,
R.drawable.pic6, R.drawable.pic7, R.drawable.pic8, R.drawable.pic9, R.drawable.pic10};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.recycleView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(new ListAdapter(images));
}
}
Это мой ListAdapter класс, который расширяет RecyclerView.Adapter, также этот класс имеет вложенный класс ListViewHolder , которыйextends RecyclerView.ViewHolder
public class ListAdapter extends
RecyclerView.Adapter<ListAdapter.ListViewHolder> {
private int[] images;
public ListAdapter(int[] images){
this.images = images;
}
@NonNull
@Override
public ListViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
LayoutInflater inflater = LayoutInflater.from(viewGroup.getContext());
View view = inflater.inflate(R.layout.list_item, viewGroup, false);
return new ListViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ListViewHolder listViewHolder, int i) {
int index = images[i];
listViewHolder.imageView.setImageResource(index);
}
@Override
public int getItemCount() {
return images.length;
}
public class ListViewHolder extends RecyclerView.ViewHolder{
ImageView imageView;
Button setWallpaper;
public ListViewHolder(@NonNull View itemView) {
super(itemView);
imageView = itemView.findViewById(R.id.my_images);
setWallpaper = itemView.findViewById(R.id.setWallpaper);
}
}
}
Это мой list_item.xml file
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/my_images"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/pic1"
android:adjustViewBounds="true"
android:scaleType="centerCrop"/>
<Button
android:id="@+id/setWallpaper"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Set"
android:layout_alignParentBottom="true"
android:layout_marginStart="20dp"
android:layout_marginBottom="20dp"/>
</RelativeLayout>
Это дизайн каждого элемента списка.
Теперь я хочу установить щелчок на кнопке, чтобы установить соответствующие обои на домашний экран.У меня возникли проблемы, где поставить метод onClick () и как установить обои.