Я пытаюсь добавить пользовательский плагин слайдера изображений во фрагмент. Этот плагин-слайдер отлично работает в Activity, но при переходе от действия к фрагменту он показывает: класс должен быть объявлен как абстрактный или реализовать абстрактный метод. Я только начал изучать фрагмент. При поиске решения я получил совет по реализации абстрактного класса, но я не уверен, как добавить?
public class Home_Screen extends Fragment implements BaseSliderView.OnSliderClickListener {
private SliderLayout mDemoSlider;
private static final String getURL = "";
HashMap<String, String> url_maps;
GridView gridview;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mDemoSlider = getActivity().findViewById(R.id.slider);
// Creating volley request obj
JsonArrayRequest billionaireReq = new JsonArrayRequest(getURL,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
url_maps = new HashMap<String, String>();
// Parsing json
for (int i = 0; i < response.length(); i++) {
try {
JSONObject obj = response.getJSONObject(i);
url_maps.put(obj.getString("title") + " - " + obj.getString("releaseYear"), obj.getString("image"));
} catch (JSONException e) {
e.printStackTrace();
}
}
for (String name : url_maps.keySet()) {
TextSliderView textSliderView = new TextSliderView(getActivity());
// initialize a SliderLayout
textSliderView
.description(name)
.descriptionSize(20)
.image(url_maps.get(name))
.setScaleType(BaseSliderView.ScaleType.CenterCrop)
.setOnSliderClickListener(Home_Screen.this);
//add your extra information
textSliderView.bundle(new Bundle());
textSliderView.getBundle().putString("extra", name);
mDemoSlider.addSlider(textSliderView);
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getActivity().getApplicationContext(), "network issue: please enable wifi/mobile data", Toast.LENGTH_SHORT).show();
}
});
// Adding request to request queue
AppController.getInstance().addToRequestQueue(billionaireReq);
mDemoSlider.setPresetTransformer(SliderLayout.Transformer.Stack);
mDemoSlider.setPresetIndicator(SliderLayout.PresetIndicators.Center_Top);
mDemoSlider.setCustomAnimation(new DescriptionAnimation());
mDemoSlider.setDuration(4000);
mDemoSlider.setPresetTransformer("Stack");
// Inflate the layout for this photo
View view = inflater.inflate(R.layout.home_screen, container, false);
gridview = (GridView) view.findViewById(R.id.customgrid);
gridview.setAdapter(new CustomAdapter(getActivity(), osNameList, osImages));
gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
final Intent intent;
switch(position)
{
case 0:
intent = new Intent(v.getContext(), IntroActivity.class);
break;
case 1:
intent = new Intent(v.getContext(), WadaActivity.class);
break;
case 2:
intent = new Intent(v.getContext(), InfoActivity.class);
break;
}
startActivity(intent);
}
});
return view;
}
}
генерируется следующая ошибка
Information:Gradle tasks [:app:assembleDebug]
C:\AndroidApp\app\src\main\java\com\info\androidapp\Home_Screen.java
Error:(34, 8) error: Home_Screen is not abstract and does not override abstract method onSliderClick(BaseSliderView) in OnSliderClickListener
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
Information:BUILD FAILED in 5s
Мой файл макета, как показано ниже
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:custom="http://schemas.android.com/tools"
android:orientation="vertical">
<in.myinnos.imagesliderwithswipeslibrary.SliderLayout
android:id="@+id/slider"
android:layout_width="match_parent"
android:layout_height="match_parent"
custom:auto_cycle="true"
custom:indicator_visibility="visible"
custom:pager_animation="Stack"
custom:pager_animation_span="1100" />
<GridView
android:id="@+id/customgrid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/slider"
android:numColumns="3"
android:background="@color/ColorPrimary"
android:textColor="@color/white"
android:paddingTop="20dp"
android:paddingLeft="30dp"
android:verticalSpacing="20dp" />
</RelativeLayout>