-2
私はListPragmentにJSONデータを非同期にロードするためにloopjを使用しています。私は、ListFragmentに付属しているループリストのOnSuccessコールバック関数でFillListViewメソッドを呼び出すデフォルトのリストビューを使用しています。私はこの問題に関する多くの同様の投稿を見回しましたが、私の問題は解決できません。 ListFragment非同期データを表示しません
は、私はまた、MenuCatFragment.newInstance("a","c").setListAdapter(adapter);
を呼び出すことにより、MainActivityからListFragmentをロードしようとしたが、これはあまりにも機能していません。
誰でも助けてください。
public class MenuCatFragment extends ListFragment {
//android studio auto-generated code ommitted
public MenuCatFragment() { }
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
myApp = (App)this.getActivity().getApplication();
currentRestoSummary = myApp.getSelectedRestoSummary();
restoid = currentRestoSummary.getRestoid();
try {
LoadSelectedResto();
} catch (Exception e) {
}
}
private void LoadSelectedResto() throws JSONException {
EatNowRestClient.get("resto", new RequestParams("id", restoid), new JsonHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
Gson gson = new Gson();
Type listType = new TypeToken<Resto>() {}.getType();
try {
resto = gson.fromJson(response.toString(), listType);
myApp.setSelectedResto(resto);
FillListView();
//progressDialog.dismiss();
} catch (Exception e) {
throw e;
}
}
@Override
public void onFailure(int statusCode, Header[] headers, Throwable throwable, JSONObject errorResponse) {
super.onFailure(statusCode, headers, throwable, errorResponse);
//progressDialog.dismiss();
//Log.d("Failed: ", ""+statusCode);
//Log.d("Error : ", "" + throwable);
}
});
private void FillListView() {
ListAdapter adapter;
adapter = new customAdapterMenuCat(getActivity(),R.layout.custom_row_menucat,resto.getMenu_Categories());
setListAdapter(adapter);
}
}
//adapter code
public class customAdapterMenuCat extends ArrayAdapter<MenuCategory> {
MenuCategory[] menucat;
Context c;
public customAdapterMenuCat(Context context, int resource, MenuCategory[] objects) {
super(context, resource, objects);
menucat = objects;
c = context;
}
@Override
public int getCount() {
return menucat.length;
}
@Override
public MenuCategory getItem(int position) {
return menucat[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View customview = View.inflate(c, R.layout.custom_row_menucat,null);
TextView lblMenuCatNameResto = (TextView)customview.findViewById(R.id.lblMenuCat);
lblMenuCatNameResto.setText(menucat[position].getName());
return customview;
}
}
LoadSelectedResto()メソッドの呼び出しはありません。 –
申し訳ありません...貼り付けたばかりです... OnCreate()メソッドにあります。 –
「アダプタ」コードを入力してください。この問題はおそらくそこにあります。 –