0
我搜索了類似的問題,但很遺憾,我發現它們非常混亂,而且在使用Android和Retrofit方面我還是一個新手。Android Retrofit 1.9成功返回ListString
我這裏有一個聯繫人列表JSON
http://api.androidhive.info/contacts/
而且已經工作列表,但後來我想處理改造過程到另一個類這樣我就可以把它叫做每當我想要的。我有MainActivity調用UI和處理成功和失敗方法的RetrofitHandler。
這是我的主要活動
public class MainActivity extends AppCompatActivity{
//note i just simplifiend my code a little
private List<Contacts> contacts;
public String[] itemer;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RetrofitHandler retrofitHandler = new RetrofitHandler();
itemer = retrofitHandler.getContacts(this);
if (itemer != null) {
Toast.makeText(MainActivity.this,itemer[0],Toast.LENGTH_SHORT).show();
}
}
這裏是我的HandlerClass
ublic class RetrofitHandler {
public String[] item;
public static final String ROOT_URL = "http://api.androidhive.info";
public List<Contacts> contacts;
public String[] getContacts(final Context context) {
final ProgressDialog loading = ProgressDialog.show(context, "Fetching Data", "Please wait...", false, false);
RestAdapter adapter = new RestAdapter.Builder().setEndpoint(ROOT_URL).build();
ContactsAPI api = adapter.create(ContactsAPI.class);
api.getContacts(new Callback<Contacts>() {
@Override
public void success(Contacts contacts, Response response) {
loading.dismiss();
MainActivity update = new MainActivity();
List<Contact> contactList = contacts.getContacts();
item = new String[contactList.size()];
for (int i = 0; i < contactList.size(); i++) {
item[i] = contactList.get(i).getName();
}
}
@Override
public void failure(RetrofitError error) {
Toast.makeText(context, "Error Occured", Toast.LENGTH_LONG).show();
}
});
return item;
}
我的問題是,它與logcat的沒有錯誤順利進行。不幸的是,敬酒的主要活動將不會出現。
是一個網絡調用,可能會出現主線程和後臺線程問題, 那麼,爲什麼你不能從成功功能的結束祝酒。 另外,檢查你收到的回覆是否爲空 –
@mohitsharma好的成功敬酒是我完成的,但最初我想把從主要活動的listview可能項目成功的項目不是null我測試它用烤麪包 – user3262438
嘗試檢查:如果您的條件正在執行或沒有, 嘗試將println放入if block中並將條件更改爲itemer.length/size –