有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在安卓应用程序上显示wordpress post图像链接

我正在学习安卓应用程序,并查看了大量youtube教程,以将wordpress post实现到安卓应用程序中,并找到了一些步骤和资源

我有以下步骤:

  1. 使用REST APi获取博客文章。。它将是一个JSON数组
  2. 检查每个json对象,每个对象都有此json对象-链接-->;WpFeaturedmedia--->;对象(0)-->;Href
  3. 此Href是博客文章的图像索引
  4. 将此href传递给适配器
  5. 再次在适配器类内部对此href url使用另一个改装调用
  6. 此更新的响应将包含博客文章的所有图像(多种大小)。回答body()。getMediaDetails()。getSizes()。getThumbnail()。getSourceUrl()
  7. 将其传递给glide方法(仅限于adpater类内部)glide。使用(mContext)。加载(response.body()。getMediaDetails()。getSizes()。getThumbnail()。getSourceUrl())。进入(图像视图)
  8. 为图像url创建另一个POJO

但是,我被困在GetImageReformation上。检查catlog时,显示图像正在检索图像链接,但无法通过图像链接。请有人指导我或帮助我获取图像链接或完成以下代码


package np.com.wp_restapi;

import 安卓x.annotation.NonNull;
import 安卓x.annotation.Nullable;
import 安卓x.appcompat.app.AppCompatActivity;
import 安卓x.fragment.app.Fragment;
import 安卓x.recyclerview.widget.LinearLayoutManager;
import 安卓x.recyclerview.widget.RecyclerView;

import 安卓.os.Bundle;
import 安卓.util.Log;
import 安卓.view.View;
import 安卓.widget.ProgressBar;

import com.bumptech.glide.Glide;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;

import okhttp3.OkHttpClient;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;

public class NewsNotice1_Activity extends AppCompatActivity {

    private RecyclerView recyclerView;
    private ProgressBar progressBar;
    private LinearLayoutManager mLayoutManager;
    private ArrayList<Model> list;
    private RecyclerViewAdapter adapter;

    private String baseURL = "http:////example.com/";

    public static List<WPPost> mListPost;
    private static Retrofit retrofit = null;
    private static String ImageHref=null;

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

        recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
        progressBar = (ProgressBar) findViewById(R.id.progressbar);

        mLayoutManager = new LinearLayoutManager(NewsNotice1_Activity.this, LinearLayoutManager.VERTICAL, false);
        recyclerView.setLayoutManager(mLayoutManager);

        list = new ArrayList<Model>();

        progressBar.setVisibility(View.VISIBLE);
        if (mListPost != null) {
            /// call retrofill
            getRetrofit();
        } else {

            progressBar.setVisibility(View.GONE);
        }

        adapter = new RecyclerViewAdapter(list, NewsNotice1_Activity.this);

        recyclerView.setAdapter(adapter);
    }

    public void getRetrofit() {
        Log.d(TAG, "i am inside_200");

        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(baseURL)
                .client(okHttpClient)
                .addConverterFactory(GsonConverterFactory.create())
                .build();

        RetrofitArrayApi service = retrofit.create(RetrofitArrayApi.class);
        Call<List<WPPost>> call = service.getPostInfo();

        call.enqueue(new Callback<List<WPPost>>() {
            @Override
            public void onResponse(Call<List<WPPost>> call, Response<List<WPPost>> response) {
                try {
                    Log.e("NewsNotice_Activity", " response123 " + response.body());
                    mListPost = response.body();
                    progressBar.setVisibility(View.GONE);

                    for (int i = 0; i < response.body().size(); i++) {
                        String tempImageHref = response.body().get(i).getFeaturedMedia().toString();
                        Log.e("Href", "onResponse: " + tempImageHref);

                        getImageRetrofit(tempImageHref, ImageHref);

                        Log.e("main ", " title " + response.body().get(i).getTitle().getRendered() + " " +
                                response.body().get(i).getId());

                        String tempdetails = response.body().get(i).getExcerpt().getRendered().toString();

                        String tempDate = response.body().get(i).getDate();
                        tempDate = tempDate.replace("T", " ");

                        tempdetails = tempdetails.replace("<p>", "");
                        tempdetails = tempdetails.replace("</p>", "");
                        tempdetails = tempdetails.replace("[&hellip;]", "");


                        list.add(new Model(Model.IMAGE_TYPE, tempDate, response.body().get(i).getTitle().getRendered(),
                                tempdetails, ImageHref
                                
                        )); 
                    }

                } finally {
                    System.out.println("finally");

                }
                adapter.notifyDataSetChanged();

            }

            @Override
            public void onFailure(Call<List<WPPost>> call, Throwable t) {
                t.printStackTrace();
            }
        });
    }
    public interface RevealCourtPlaceCallbacks {
        void onSuccess(@NonNull String value);

        void onError(@NonNull Throwable throwable);
    }
//, @Nullable final RevealCourtPlaceCallbacks callbacks



    private void getImageRetrofit(final String tempImageHref, final String ImageHref) {
        Log.e("getImageRetrofit", "called " + tempImageHref);

           retrofit = new Retrofit.Builder()
                   .baseUrl(baseURL)
                   .addConverterFactory(GsonConverterFactory.create())
                   .build();
   

        RetrofitArrayApi service1 = retrofit.create(RetrofitArrayApi.class);
        Call<WPPostImage> callImage = service1.getImageInfo(tempImageHref);

        callImage.enqueue(new Callback<WPPostImage>() {


            @Override
            public void onResponse(Call<WPPostImage> call, Response<WPPostImage> response) {
               Log.e("ImageInfo1","info1: "+response.body().getMediaDetails().getSizes().getThumbnail().getSourceUrl());
               
              
            }

            @Override
            public void onFailure(Call<WPPostImage> call, Throwable t) {
                //Log.e("Link Failed: ",": t.printStackTrace()" );
                Log.e("Link Failed: ", t.getMessage());
                t.printStackTrace();
            }


        });
        return;
    }

    public static List<WPPost> getList() {
        return mListPost;
    }

}


共 (0) 个答案