package cn.daixiaodong.myapp.activity; import android.os.Bundle; import android.support.v7.app.AlertDialog; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.StaggeredGridLayoutManager; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import com.avos.avoscloud.AVException; import com.avos.avoscloud.AVObject; import com.avos.avoscloud.AVQuery; import com.avos.avoscloud.AVUser; import com.avos.avoscloud.FindCallback; import org.androidannotations.annotations.AfterViews; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.ViewById; import java.util.ArrayList; import java.util.List; import cn.daixiaodong.myapp.R; import cn.daixiaodong.myapp.activity.common.BaseActivity; import cn.daixiaodong.myapp.adapter.AssociationListAdapter; /** * 协会专题 */ @EActivity public class AssociationTopicActivity extends BaseActivity implements AssociationListAdapter.OnItemClickListener { private List<AVObject> mData; private AssociationListAdapter mAdapter; @ViewById(R.id.id_tb_toolbar) Toolbar mToolbar; @ViewById(R.id.id_rv_recycler_view) RecyclerView mRecyclerView; @AfterViews void init() { initToolbar(); setUpRecyclerView(); loadData(); } private void initToolbar() { setSupportActionBar(mToolbar); if(getSupportActionBar() != null){ getSupportActionBar().setDisplayHomeAsUpEnabled(true); } mToolbar.setTitle("社团专题"); } private void loadData() { AVQuery<AVObject> query = new AVQuery<>("association"); query.findInBackground(new FindCallback<AVObject>() { @Override public void done(List<AVObject> list, AVException e) { if (e == null) { mData.addAll(list); mAdapter.notifyDataSetChanged(); } } }); } private void setUpRecyclerView() { mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL)); mData = new ArrayList<>(); mAdapter = new AssociationListAdapter(this, mData); mAdapter.setOnItemClickListener(this); mRecyclerView.setAdapter(mAdapter); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_association_topic); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_topic, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == android.R.id.home) { finish(); return true; } return super.onOptionsItemSelected(item); } @Override public void onItemClick(AssociationListAdapter.MyViewHolder viewHolder, int pos) { AssociationDetailActivity_.intent(this).mAssociationId(mData.get(pos).getObjectId()).mAssociationName(mData.get(pos).getString("name")).start(); } @Override public void onItemJoinClick(AssociationListAdapter.MyViewHolder viewHolder, int pos) { // TODO 判断是否登录 // RegistrationInformationActivity_.intent(AssociationTopicActivity.this).mAssociationId(mData.get(pos).getObjectId()).start(); AVQuery<AVObject> query = new AVQuery<>("user_join_association"); query.whereEqualTo("user", AVUser.getCurrentUser()); query.whereEqualTo("association", mData.get(pos)); query.findInBackground(new FindCallback<AVObject>() { @Override public void done(List<AVObject> list, AVException e) { if (e == null) { if (!list.isEmpty()) { showToast("你已经加入了该协会,请勿重复报名"); AlertDialog.Builder builder = new AlertDialog.Builder(AssociationTopicActivity.this); builder.setMessage("你已经加入了该协会,请勿重复报名"); builder.setPositiveButton("确定",null); builder.create().show(); } else { RegistrationInformationActivity_.intent(AssociationTopicActivity.this).start(); } } else { e.printStackTrace(); } } }); } }