packagecom.example.regreshgridvdemo;importandroid.app.Activity;importandroid.content.Context;importandroid.graphics.Color;importandroid.os.Bundle;importandroid.util.Log;importandroid.view.Menu;importandroid.view.View;importandroid.view.ViewGroup;importandroid.widget.Adapter;importandroid.widget.AdapterView;importandroid.widget.AdapterView.OnItemClickListener;importandroid.widget.BaseAdapter;importandroid.widget.GridView;importandroid.widget.TextView;public class MainActivity extendsActivity {
GridView gridV;
@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//setContentView(R.layout.activity_main);
gridV = new GridView(this);
gridV.setAdapter(new cAdapter(this));
gridV.setOnItemClickListener(l);
gridV.setVerticalSpacing(10);
gridV.setHorizontalSpacing(10);
gridV.setNumColumns(4);
setContentView(gridV);
}
OnItemClickListener l= newOnItemClickListener() {
@Overridepublic void onItemClick(AdapterView> parent, View view, intposition,longid) {
Adapter adapter=parent.getAdapter();if(adapter != null && adapter instanceofcAdapter){
((cAdapter)adapter).setCrtId(position);
parent.postInvalidate();
Log.i("xxx", "position=" + position + " id=" +id);
}
}
};
@Overridepublic booleanonCreateOptionsMenu(Menu menu) {//Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);return true;
}
}class cAdapter extendsBaseAdapter{final int CNT = 100;int crt = 0;
Context mCtx;publiccAdapter(Context ctx) {
mCtx=ctx;
}public void setCrtId(inti){
crt=i;
}
@Overridepublic intgetCount() {returnCNT;
}
@Overridepublic Object getItem(intposition) {return newInteger(position);
}
@Overridepublic long getItemId(intposition) {returnposition;
}
@Overridepublic View getView(intposition, View convertView, ViewGroup parent) {
TextView txt= null;if(convertView == null)
txt= newTextView(mCtx);else if(convertView instanceofTextView)
txt=(TextView) convertView;
txt.setTextSize(30);
txt.setText("ID=" +position);
txt.setTextColor(Color.RED);
txt.setBackgroundColor(position== crt ?Color.BLACK : Color.YELLOW);returntxt;
}
}