如何解决如何获取Wordpress发布图片链接以在Android应用程序上显示
我正在学习android应用程序,并查看了许多YouTube教程,以将wordpress post实现到android应用程序中,并找到了一些步骤和资源。
我执行以下步骤:
- 使用REST APi获取博客帖子。它将是一个JSON数组。
- 检查每个json对象,每个对象都有这个JSON对象-链接-> WpFeaturedmedia ---> object(0)-> Href
- 此Href是博客文章的图像索引。
- 将此href传递给适配器。
- 内部适配器类再次对此href网址使用另一个改造调用
- 此改型的响应将包含博客文章的所有图像(多种尺寸)。 response.body()。getMediaDetails()。getSizes()。getThumbnail()。getSourceUrl()
- 将其传递给glide方法(仅在adpater类内部)Glide.with(mContext).load(response.body()。getMediaDetails()。getSizes()。getThumbnail()。getSourceUrl()).into(imageView) ;
- 为图像网址创建另一个POJO。
但是,我被困在 getImageRetrofit 上。在检查目录显示节目时,图像正在检索图像链接,但无法通过图像链接。有人可以指导我或帮助我获取图像链接或完成以下代码吗?
package np.com.wp_restapi;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.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("[…]","");
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;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。