package info.shangfang;
import android.content.Context;
import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.RadioGroup;
import android.widget.TextView;
import java.util.Arrays;
import java.util.List;
public class MainActivity extends BaseActivity {
private RecyclerView mRecyclerView;
private List<String> mList = Arrays.asList("打的", "叫外卖", "查快递", "挂号", "装修", "看电影", "家政服务", "衣物干洗", "缴费记录");
private Adapter mAdapter;
private GridLayoutManager mLayoutManager;
private RadioGroup mRadioGroup;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mRecyclerView = find(R.id.id_recyclerview);
mLayoutManager = new GridLayoutManager(this, 3);
mAdapter = new Adapter(this) {
@Override
protected void onItemClick(View v, int position) {
Toast(position);
}
};
mRecyclerView.setLayoutManager(mLayoutManager);
mRecyclerView.setAdapter(mAdapter);
mRadioGroup = find(R.id.rg);
mRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.rb_home:
Toast("首页");
break;
case R.id.rb_neighbor:
Toast("邻里");
break;
case R.id.rb_mine:
Toast("我的");
break;
}
}
});
}
abstract class Adapter extends RecyclerView.Adapter<Adapter.Holder> {
Context mContext;
protected abstract void onItemClick(View v, int position);
public Adapter(Context context) {
this.mContext = context;
}
@Override
public Holder onCreateViewHolder(ViewGroup parent, int viewType) {
return new Holder(LayoutInflater.from(mContext).inflate(R.layout.list_item, parent, false));
}
@Override
public void onBindViewHolder(Holder holder, int position) {
holder.mTextView.setText(mList.get(position));
GridLayoutManager.LayoutParams params = (GridLayoutManager.LayoutParams) holder.itemView.getLayoutParams();
switch (position) {
case 0:
case 1:
case 3:
case 4:
params.setMargins(0, 0, 2, 2);
break;
case 2:
case 5:
params.setMargins(0, 0, 0, 2);
break;
case 6:
case 7:
params.setMargins(0, 0, 2, 0);
break;
}
holder.itemView.setLayoutParams(params);
}
@Override
public int getItemCount() {
return mList.size();
}
class Holder extends RecyclerView.ViewHolder {
ImageView mImageView;
TextView mTextView;
public Holder(View itemView) {
super(itemView);
mImageView = find(itemView, R.id.iv);
mTextView = find(itemView, R.id.text);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onItemClick(v, getAdapterPosition());
}
});
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}