package com.sogou.fastomiai; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageButton; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import com.android.volley.Response; import com.android.volley.VolleyError; import com.sogou.fastomiai.controller.SessionManager; import com.sogou.fastomiai.model.NoticeListInfo; import com.sogou.fastomiai.model.NoticeListInfo.MsgTypeEnum; import com.sogou.fastomiai.model.NoticeListInfo.NoticeInfo; import com.sogou.fastomiai.util.Constants; import com.sogou.fastomiai.util.NetworkRequest; import com.sogou.fastomiai.util.NetworkUtil; public class NotificationListActivity extends Activity { private ListView mList; private ImageButton mBtnBack; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_notification_list); mList = (ListView)findViewById(R.id.notification_list); mBtnBack = (ImageButton) findViewById(R.id.btn_notification_list_back); mBtnBack.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(getApplicationContext(), HomePageActivity.class); startActivity(intent); } }); requestNoticeInfo(); } public void requestNoticeInfo() { String token = SessionManager.getInstance(getApplicationContext()) .getToken(); Map<String, String> params = new HashMap<String, String>(); params.put(Constants.TOKEN, token); String url = NetworkUtil.getUrl(Constants.NOTICE_LIST_URL, params); NetworkRequest.get(url, NoticeListInfo.class, new Response.Listener<NoticeListInfo>() { @Override public void onResponse(NoticeListInfo info) { if (info != null && info.isSuccess()) { NotificationListAdapter listAdapter = new NotificationListAdapter( info.data); mList.setAdapter(listAdapter); } else { Toast.makeText(NotificationListActivity.this, "获取通知列表失败", Toast.LENGTH_SHORT).show(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Toast.makeText(NotificationListActivity.this, "获取通知列表失败", Toast.LENGTH_SHORT).show(); } }, false); } private class NotificationListAdapter extends ArrayAdapter<NoticeInfo> { public NotificationListAdapter(ArrayList<NoticeInfo> infos) { super(NotificationListActivity.this, 0, infos); } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { convertView = NotificationListActivity.this.getLayoutInflater() .inflate(R.layout.list_item_notice, null); } final NoticeInfo info = getItem(position); TextView textTip = (TextView)convertView.findViewById(R.id.text_notice_tip); if (info.title != null) { textTip.setText(info.title); } LinearLayout layout = (LinearLayout)convertView.findViewById(R.id.layout_notice_item); layout.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(getApplicationContext(), NotificationInfoActivity.class); if (info.type == MsgTypeEnum.USER_MSG) { intent.putExtra(NotificationInfoActivity.EXTRA_INVITE_ID, info.inviteId); } intent.putExtra(NotificationInfoActivity.EXTRA_NOTICE_ID, info.noticeID); startActivity(intent); } }); return convertView; } } }