私は私のパートナーの配列を与えるのWeb APIを持っており、それは次のようになります。アンドロイド改造とアクティブでウェブAPIからJSON配列を取得する方法
[
"partner1",
"partner2",
"partner3",
"....",
"parner222"
]
私が持っている表のパートナー(ActiveAndroid)においてI apiからすべてのパートナーを保存したいと考えています。ここで
@Table(name = "Partners")
public class Partners extends Model {
@Column(name = "Name")
String name;
public Partners() {}
public Partners(String name) {
this.name = name;
}
}
私のPOJOモデルクラスです:
public class Partners {
@SerializedName("name")
@Expose
private List<String> name = new ArrayList<String>();
public List<String> getName() {
return name;
}
public void setName(List<String> name) {
this.name = name;
}
}
これは私のインターフェイス
public interface APIService {
@GET("Partners")
Call<Partners> getPartners();
}
であり、これは、APIのURL
public class APIHelper {
public static APIService apiService;
public static APIService getApiService() {
if (apiService == null) {
Retrofit retrofit = new Retrofit.Builder().baseUrl("https://part-oflink.domain.com/partners.json/")
.addConverterFactory(GsonConverterFactory.create()).build();
apiService = retrofit.create(APIService.class);
}
return apiService;
}
}
と私のAPIHelperであり、これはあります私がボタンを持っている部分私はAPIからデータを取得してPartnersテーブルに保存するonClickメソッドを実装したいと思います。
public class DownloadMain extends Fragment implements Callback<Partners> {
private Button dloadPartners;
private Call<Partners> callPartners;
public static APIService apiService;
public DownloadMain() {}
public DownloadMain newInstance() { return new DownloadMain(); }
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.download_main, container, false);
dloadPartners = (Button) view.findViewById(R.id.downloadPartners);
dloadPartners.setOnClickListener(btnListener);
callPartners = APIHelper.getApiService().getPartners();
callPartners.enqueue(this);
return view;
}
Button.OnClickListener btnListener = (new View.OnClickListener() {
@Override
public void onClick(View v) {
//here I need to implement that on click downloads me data
// and save it into my Partners table
}
});
@Override
public void onResponse(Call<Partners> call, Response<Partners> response) {
//here I'm trying to put api response into array list
if (response.body() != null) {
ArrayList<String> partnersList = new ArrayList<>();
partnersList = response.body();
}
}
@Override
public void onFailure(Call<Partners> call, Throwable t) {
}
}
これで私は立ち往生しました。私はAPIからデータを取得するonClickボタンメソッドを実装したいと思います。 onResponse()メソッドでは、データを受け取るかどうかを確認するためにArrayListにデータを入れようとしています。また、このデータをテーブルパートナーに保存したいと考えています。
誰かが私を助けたり、私にこれを解決させてくれると感謝しています。これは私が改造やapiでやっているのは初めてです。
誰かが私を助けたり、APIからデータを取得してテーブルのパートナーに保存したりするのに手伝ってもらえますか?
...ループの中 – tsiro