安卓怎么不显示更新数据连接到服务器,如何在android中刷新gridview从服务器加载数据...

此日历还从服务器加载事件日期。每当我单击“下一步”按钮(在“月份名称”的右侧,即“更改月份”)或每当我在“年份”微调器(更改年份)中选择项目时,都应更新日历。代码一开始工作得很好,但当我单击微调器或“下一步”按钮时,网格视图并没有更改其视图。我在stackoverflow上找到了一些解决方案,但没有任何效果。

下面是适配器上的构造函数:

public MonthAdapter(Context c, int month, int year, DisplayMetrics metrics,ArrayList event_Avail) {

mContext = c;

mMonth = month;

mYear = year;

mCalendar = new GregorianCalendar(mYear, mMonth, 1);

mCalendarToday = Calendar.getInstance();

mDisplayMetrics = metrics;

event_avail = event_Avail;

populateMonth();

}

下面是适配器上的getview方法:

public View getView(int position, View convertView, ViewGroup parent) {

TextView view;

if(convertView == null)

{

view = new TextView(mContext);

view.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);

view.setPadding(10,10,10,10);

view.setText(mItems.get(position));

view.setTextColor(Color.BLACK);

}

else

{

view = (TextView) convertView;

}

int[] date = getDate(position);

if (date != null) {

view.setHeight(mDayHeight);

if (date[1] != mMonth) {

} else {

Typeface gibsonbold = Typeface.createFromAsset(mContext.getAssets(), "fonts/gibsonbold.ttf");

view.setTypeface(gibsonbold);

view.setTextColor(mContext.getResources().getColor(R.color.colorWhite));

for(int x=0;x

{

if(view.getText().toString().equals(event_avail.get(x)))

{

view.setBackgroundResource(R.drawable.event_available_bg);

}

}

view.setTextSize(16);

if (isToday(date[0], date[1], date[2] )) {

}

}

} else {

Typeface gibsonbold = Typeface.createFromAsset(mContext.getAssets(), "fonts/gibsonbold.ttf");

view.setTypeface(gibsonbold);

view.setTextColor(mContext.getResources().getColor(R.color.colorBlack));

view.setTextSize(16);

view.setHeight(mTitleHeight);

}

onDate(date, position, view);

return view;

}

下面是我如何调用适配器:

public void loadEventAvailable() {

eventInterface = ApiHandler.getApi(getActivity()).create(EventInterface.class);

final Call countryCall = eventInterface.event_available(monthNumber[mToday[1]],yearSelected);

countryCall.enqueue(new Callback() {

@Override

public void onResponse(Call call, Response response) {

try {

if (response.isSuccessful()) {

if (response.body().getSuccess().equals("FAILED")) {

Toast.makeText(getActivity(), response.body().getMessage(), Toast.LENGTH_SHORT).show();

}

else {

List eventItems = response.body().getData();

eventDate = new ArrayList<>();

eventStatus = new ArrayList<>();

event_avail = new ArrayList<>();

for (int i = 0; i < eventItems.size(); i++){

eventDate.add(eventItems.get(i).getDATE());

eventStatus.add(eventItems.get(i).getAVAILABLE());

if(eventItems.get(i).getAVAILABLE().equals("TRUE"))

{

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Date tgl = sdf.parse(eventItems.get(i).getDATE());

sdf = new SimpleDateFormat("d");

String tgl2 = sdf.format(tgl);

event_avail.add(tgl2);

Log.d(TAG, "isi data ke " + i + " adalah :" + tgl2 + " ukuran =" + event_avail.size());

}

calendar_grid.setAdapter(new MonthAdapter(getActivity(), mToday[1], Integer.parseInt(yearSelected), metrics,event_avail) {

@Override

protected void onDate(int[] date, int position, View item) {

}

});

}

}

} else {

try {

Converter converter = ApiHandler.getApi(getActivity()).responseBodyConverter(ApiError.class, (java.lang.annotation.Annotation[]) new Annotation[0]);

ApiError error = converter.convert(response.errorBody());

Toast.makeText(getActivity(), error.getMessage(), Toast.LENGTH_SHORT).show();

} catch (Exception e) {

Toast.makeText(getActivity(), response.errorBody().string(), Toast.LENGTH_SHORT).show();

}

}

} catch (Exception e) {

Toast.makeText(getActivity(), e.getMessage(), Toast.LENGTH_SHORT).show();

}

}

@Override

public void onFailure(Call call, Throwable t) {

Toast.makeText(getActivity(), t.getMessage(), Toast.LENGTH_SHORT).show();

}

});

}

很抱歉,由于篇幅的限制,我不能把我所有的代码都寄到这里。提前谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值