Retrofit2 使用 API 内容填充回收视图

问题描述

我是 android java 开发的新手,正在寻找 Retrofit 2 库的一些支持

我正在尝试使用来自 API 的内容填充仪表板上的回收站视图,目前我发现很难克服这个障碍。

对此事的任何帮助将不胜感激

因此,从我看到的日期为 2020 年 4 月的教程中,为了能够获得 JSON 响应,您需要以下内容

在这种情况下,我基本上想要实现的是我需要通过我的回收者视图 3 件事:

  1. 一张图片
  2. 标题
  3. 相对布局,用户可以点击对象

而且我需要这些“卡片”将用户带到某个活动,所以假设用户点击了“类别 1”,我需要该用户转到那个受人尊敬的活动。

在这是我的代码

UserDashboard.java

    private static final String TAG = "Started User Dashboard Successfully";
//Variables
String shareBody = "This is a Great App,TENCIL APP COMING SOON";
Button btnShare;
ImageView menuIcon;
LinearLayout contentView;
static float END_SCALE = 0.7f;
RecyclerView featuredRecycler,categoriesRecycler;
RecyclerView.Adapter adapter;
CategoriesAdapter categoriesAdapter;


//Drawer Menu
DrawerLayout drawerLayout;
NavigationView navigationView;
Context mContext;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate ( savedInstanceState );


    setContentView ( R.layout.userdashboard );

    //Hooks
    menuIcon = findViewById ( R.id.menu_icon );
    contentView = findViewById ( R.id.content );
    featuredRecycler = findViewById ( R.id.featured_recycler );
    categoriesRecycler = findViewById ( R.id.categories );
    featuredRecycler ();
    categoriesRecycler ();
    getAllCategories ();


    //Menu Hooks
    drawerLayout = findViewById ( R.id.drawer_layout );
    navigationView = findViewById ( R.id.navigation_view );
    menuIcon = findViewById ( R.id.menu_icon );
    contentView = findViewById ( R.id.content );


    navigationDrawer ();
}

public void getAllCategories(){

    Call<List<CategoriesResponse>> categorieslist = apiclient.getUserService ().getAllCategories ();
    categorieslist.enqueue ( new Callback<List<CategoriesResponse>> () {
        @Override
        public void onResponse(Call<List<CategoriesResponse>> call,Response<List<CategoriesResponse>> response) {
            if (response.isSuccessful ()) {
                Log.e ( "success",response.body ().toString () );
            }
        }

        @Override
        public void onFailure(Call<List<CategoriesResponse>> call,Throwable t) {
            Log.e ( "failure",t.getLocalizedMessage () );

        }
    } );

}

private void categoriesRecycler() {
   /* ArrayList<CategoriesHelperClass> categoriesHelperClasses = new ArrayList<> ();
    categoriesHelperClasses.add ( new CategoriesHelperClass ( R.drawable.tencilw,"Social Media" ) );
    categoriesHelperClasses.add ( new CategoriesHelperClass ( R.drawable.piggy,"Finance Companies" ) );
    categoriesHelperClasses.add ( new CategoriesHelperClass ( R.drawable.pws,"Tech Companies" ) );
    categoriesHelperClasses.add ( new CategoriesHelperClass ( R.drawable.analysisw,"FinTech Companies" ) );
    categoriesHelperClasses.add ( new CategoriesHelperClass ( R.drawable.home,"Local" ) ); */


    categoriesRecycler.setHasFixedSize ( true );
    categoriesRecycler.setLayoutManager ( new linearlayoutmanager ( this,linearlayoutmanager.HORIZONTAL,false ) );
    categoriesRecycler.setAdapter ( adapter );

}

//Setting Featured Recylcer design view
private void featuredRecycler() {

    featuredRecycler.setHasFixedSize ( true );
    featuredRecycler.setLayoutManager ( new linearlayoutmanager ( this,false ) );

    ArrayList<FeaturedHelperClass> featuredBusinesses = new ArrayList<> ();
    featuredBusinesses.add ( new FeaturedHelperClass ( R.drawable.pwsb,"Provide","We are a Company that designs websites and apps. Learn More Here:" ) );
    featuredBusinesses.add ( new FeaturedHelperClass ( R.drawable.tencilw,"Tencil","“Tencil was created with the aim of helping young adults learn more about the digital marketing industry”" ) );
    featuredBusinesses.add ( new FeaturedHelperClass ( R.drawable.search_place,"Want to be a Featured Business?","Contact Us Now!" ) );

    adapter = new FeaturedAdapter ( (featuredBusinesses) );
    featuredRecycler.setAdapter ( adapter );

}

类别适配器.java

private Context mContext;
private List<CategoriesResponse> categoriesResponseList;

public CategoriesAdapter(ArrayList<CategoriesHelperClass> categoriesHelperClasses,Context mContext) {
    this.mContext = mContext;
}

public void setData(List<CategoriesResponse> categoriesResponseList) {
    this.categoriesResponseList = categoriesResponseList;
    notifyDataSetChanged ();
}

//Returns Categories View Dynamically
public CategoriesAdapter.FeaturedViewHolder onCreateViewHolder(@NonNull ViewGroup parent,int viewType) {
    mContext = parent.getContext ();
    return new CategoriesAdapter.FeaturedViewHolder (LayoutInflater.from ( mContext ).inflate ( R.layout.categories_card_design,parent,false ));
}

@Override
public void onBindViewHolder(@NonNull FeaturedViewHolder holder,int position) {
    CategoriesHelperClass categoriesHelperClass = categoriesResponseList.get ( position );

    holder.image.setimageResource ( categoriesHelperClass.getimage () );
    holder.title.setText ( categoriesHelperClass.getTitle () );

}

@Override
public int getItemCount() {

    return categoriesResponseList.size ();
}

//HOLDS VIEWS
public static class FeaturedViewHolder extends RecyclerView.ViewHolder {

    RelativeLayout categoriesCard;
    ImageView image;
    TextView title;


    public FeaturedViewHolder(@NonNull View itemView) {
        super ( itemView );

        //HOOKS
        categoriesCard = itemView.findViewById ( categories_card );
        image = itemView.findViewById ( R.id.categories_image );
        title = itemView.findViewById ( R.id.categories_title );

    }
}

CategoriesResponse.java

public class CategoriesResponse extends CategoriesHelperClass {
private int cat_id;
private String category;

public CategoriesResponse(int image,String title) {
    super ( image,title );
}

public int getCat_id() {
    return cat_id;
}

public void setCat_id(int cat_id) {
    this.cat_id = cat_id;
}

public String getCategory() {
    return category;
}

public void setCategory(String category) {
    this.category = category;
}

@Override
public String toString() {
    return "CategoriesResponse{" +
            "cat_id=" + cat_id +
            ",category='" + category +
            '}';
}

}

UserService.java

public interface UserService {

@POST("login.PHP?method=json")
@Headers({"Content-Type: application/json","Accept: application/json"})
Call<LoginResponse> userLogin(
        @Body LoginResponse loginResponse
);

@POST("registration.PHP?method=json")
@Headers({"Content-Type: application/json","Accept: application/json","X-API-KEY: ee4183831d9c0fd8794c9161a25c36b6"})
Call<RegisterResponse> registerUsers(
        @Body RegisterRequest registerRequest
);

@GET("ivgen.PHP")
Call<RegisterRequest> ivgen(@Body RegisterRequest ivgen);

@GET("catsGet.PHP")
Call<List<CategoriesResponse>> getAllCategories();

}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)