code>>>
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 package com.example.flexd1; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import android.os.Bundle; 7 import android.annotation.SuppressLint; 8 import android.app.Activity; 9 import android.util.Log; 10 import android.view.KeyEvent; 11 import android.view.Menu; 12 import android.view.MotionEvent; 13 import android.view.View; 14 import android.view.View.OnClickListener; 15 import android.view.View.OnFocusChangeListener; 16 import android.view.View.OnHoverListener; 17 import android.view.View.OnKeyListener; 18 import android.view.View.OnTouchListener; 19 import android.view.animation.AccelerateDecelerateInterpolator; 20 import android.view.animation.Animation; 21 import android.view.animation.AnimationUtils; 22 import android.view.animation.RotateAnimation; 23 import android.widget.AdapterView; 24 import android.widget.AdapterView.OnItemClickListener; 25 import android.widget.AdapterView.OnItemSelectedListener; 26 import android.widget.ArrayAdapter; 27 import android.widget.Button; 28 import android.widget.CheckBox; 29 import android.widget.CompoundButton; 30 import android.widget.CompoundButton.OnCheckedChangeListener; 31 import android.widget.EditText; 32 import android.widget.ImageButton; 33 import android.widget.ImageView; 34 import android.widget.RadioButton; 35 import android.widget.RadioGroup; 36 import android.widget.Spinner; 37 import android.widget.TextView; 38 import android.widget.Toast; 39 40 /** 41 * Android练习之EditText、ImageButton、CheckBox、RadioGroup、ImageView、Spinner 42 */ 43 public class MainActivity extends Activity { 44 45 private EditText et1; 46 private TextView tv1; 47 private ImageButton ibt1; 48 private int count = 0; 49 private CheckBox cb1; 50 private RadioButton rb1; 51 private RadioButton rb2; 52 private RadioGroup rg1; 53 private ImageView iv1; 54 private ImageView iv2; 55 private Spinner sp1; 56 private ArrayAdapter<String> adapter; 57 Animation animation; 58 private Button bt1; 59 private Button bt2; 60 private List<String> list_str; 61 private EditText et2; 62 private Spinner sp2; 63 private ArrayAdapter<String> adapter2; 64 65 @SuppressLint("NewApi") 66 @Override 67 protected void onCreate(Bundle savedInstanceState) { 68 super.onCreate(savedInstanceState); 69 setContentView(R.layout.activity_main); 70 71 et1 = (EditText)findViewById(R.id.et1); 72 tv1 = (TextView)findViewById(R.id.tv1); 73 ibt1 = (ImageButton)findViewById(R.id.ibt1); 74 cb1 = (CheckBox)findViewById(R.id.cb1); 75 rg1 = (RadioGroup)findViewById(R.id.rg1); 76 rb1 = (RadioButton)findViewById(R.id.rb1); 77 rb2 = (RadioButton)findViewById(R.id.rb2); 78 iv1 = (ImageView)findViewById(R.id.iv1); 79 iv2 = (ImageView)findViewById(R.id.iv2); 80 sp1 = (Spinner)findViewById(R.id.sp1); 81 et2 = (EditText)findViewById(R.id.et2); 82 sp2 = (Spinner)findViewById(R.id.sp2); 83 84 /** 85 * EditText的键盘事件 86 */ 87 et1.setOnKeyListener(new OnKeyListener() { 88 @Override 89 public boolean onKey(View v, int keyCode, KeyEvent event) { 90 tv1.setText(et1.getText()); 91 return false; 92 } 93 }); 94 95 /** 96 * ImageButton的Click事件 97 */ 98 ibt1.setOnClickListener(new OnClickListener() { 99 @Override 100 public void onClick(View v) { 101 Log.i("Tag","ImageButton Click-------------------->>>"); 102 tv1.setText("ImageButton Click事件"); 103 count++; 104 if(0==count%2){ 105 ibt1.setImageResource(R.drawable.ic_launcher); 106 }else{ 107 ibt1.setImageResource(R.drawable.baidu); 108 } 109 } 110 }); 111 112 /** 113 * ImageButton的FocusChange事件 114 */ 115 ibt1.setFocusableInTouchMode(true);//在Android TouchMode模式下是不存在focus的 116 ibt1.setOnFocusChangeListener(new OnFocusChangeListener() { 117 @Override 118 public void onFocusChange(View v, boolean hasFocus) { 119 if(hasFocus==true){ 120 Log.i("Tag","ImageButton FocusChange-------------------->>>"); 121 tv1.setText("ImageButton的FocusChange事件"); 122 } 123 } 124 }); 125 126 //summary:FocusChange先触发 127 128 /** 129 * CheckBox的Click事件 130 */ 131 cb1.setOnClickListener(new OnClickListener() { 132 @Override 133 public void onClick(View v) { 134 tv1.setText("CheckBox的Click事件"); 135 Log.i("Tag","CheckBox Click------------------------------>>>"); 136 } 137 }); 138 139 /** 140 * CheckBox的CheckedChange事件 141 */ 142 cb1.setOnCheckedChangeListener(new android.widget.CheckBox.OnCheckedChangeListener() { 143 @Override 144 public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 145 tv1.setText("CheckBox的CheckedChange事件"); 146 Log.i("Tag","CheckBox CheckedChange------------------------------>>>"); 147 } 148 }); 149 150 //summary:CheckedChange先触发 Click总是后触发 151 152 /** 153 * RadioGroup的CheckedChange事件 154 */ 155 rg1.setOnCheckedChangeListener(new android.widget.RadioGroup.OnCheckedChangeListener() { 156 public void onCheckedChanged(RadioGroup group, int checkedId) { 157 Log.i("Tag","RadioGroup CheckedChange------------------------------>>>"); 158 if(checkedId == rb1.getId()){ 159 tv1.setText("rb1的CheckedChange事件"); 160 }else if(checkedId == rb2.getId()){ 161 tv1.setText("rb2的CheckedChange事件"); 162 }else { 163 tv1.setText("rb的CheckedChange事件"); 164 } 165 } 166 }); 167 168 /** 169 * ImageView的Touch事件 170 */ 171 iv1.setImageResource(R.drawable.ic_launcher); 172 iv2.setImageDrawable(getResources().getDrawable(R.drawable.ic_launcher)); 173 174 iv1.setOnTouchListener(new OnTouchListener() { 175 @Override 176 public boolean onTouch(View v, MotionEvent event) { 177 Log.i("Tag","imageView--------------->>>>action" + event.getAction()); 178 if(event.getAction()==MotionEvent.ACTION_DOWN){ 179 iv1.setImageResource(R.drawable.baidu); 180 iv2.setImageDrawable(getResources().getDrawable(R.drawable.baidu)); 181 } 182 return true; 183 } 184 }); 185 186 /** 187 * Spinner + animation 188 */ 189 final String[] array_str = {"东","南","西","北"}; 190 //android.R是默认提供的 191 adapter = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, array_str); 192 adapter.setDropDownViewResource(R.layout.spinner_dropdown); 193 194 sp1.setAdapter(adapter); 195 sp1.setOnItemSelectedListener(new OnItemSelectedListener() { 196 @Override 197 public void onItemSelected(AdapterView<?> arg0, View arg1, 198 int arg2, long arg3) { 199 Log.i("Tag","Spinner----->"+array_str[arg2]); 200 arg0.setVisibility(View.VISIBLE);//? 201 } 202 203 @Override 204 public void onNothingSelected(AdapterView<?> arg0) { 205 // TODO Auto-generated method stub 206 } 207 }); 208 209 //animation = AnimationUtils.loadAnimation(this, R.a) 210 animation = new RotateAnimation(0.0f,+360.0f); 211 animation.setInterpolator(new AccelerateDecelerateInterpolator()); 212 animation.setDuration(3000); 213 214 sp1.setOnTouchListener(new OnTouchListener() { 215 @Override 216 public boolean onTouch(View v, MotionEvent event) { 217 v.startAnimation(animation); 218 v.setVisibility(View.INVISIBLE); 219 return true; 220 } 221 }); 222 223 /** 224 * Spinner 点击bt1bt2增加删除下拉列表中的列表项 225 */ 226 //用于adapter2的list 227 list_str = new ArrayList<String>(); 228 list_str.add("春"); 229 list_str.add("夏"); 230 list_str.add("秋"); 231 list_str.add("冬"); 232 233 //用于spinner的adapter 234 adapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_single_choice,list_str); 235 adapter2.setDropDownViewResource(R.layout.spinner_dropdown); 236 237 //Spinner 238 sp2.setAdapter(adapter2); 239 240 //Button ADD EditText的值 241 bt1 = (Button)findViewById(R.id.bt1); 242 bt2 = (Button)findViewById(R.id.bt2); 243 bt1.setOnClickListener(new OnClickListener() { 244 @Override 245 public void onClick(View v) { 246 //判断EditText的值 247 String et2str = et2.getText().toString(); 248 Log.i("Tag","------------------>>>" + et2str);//这是在new的类里面,要写到方法里,之前忘了直接写类里取不到值 249 if(!"".equals(et2str)){ 250 //判断增加的数据项是否重复,adapter是在改变的,这时候判断的是跟adapter的已设置进去的数据比较而不是list 251 for(int i=0;i<adapter2.getCount();i++){ 252 if(adapter2.getItem(i).equals(et2str)){ 253 return; 254 } 255 }//for 256 //没有return则add 257 adapter2.add(et2str); 258 //adapter2可以根据字符串查找所在位置 259 sp2.setSelection(adapter2.getPosition(et2str)); 260 et2.setText(""); 261 Toast.makeText(MainActivity.this, et2str, Toast.LENGTH_LONG).show(); 262 } 263 } 264 }); 265 266 //Button Remove 选中的selectItem 267 bt2.setOnClickListener(new OnClickListener() { 268 @Override 269 public void onClick(View v) { 270 //判断已选择 271 if(null!=sp2.getSelectedItem()){ 272 adapter2.remove(sp2.getSelectedItem().toString()); 273 et2.setText(""); 274 } 275 } 276 }); 277 278 //sp2选中事件 279 sp2.setOnItemSelectedListener(new OnItemSelectedListener() { 280 281 @Override 282 public void onItemSelected(AdapterView<?> arg0, View arg1, 283 int arg2, long arg3) { 284 Toast.makeText(MainActivity.this, arg0.getSelectedItem().toString(), Toast.LENGTH_LONG).show(); 285 } 286 287 @Override 288 public void onNothingSelected(AdapterView<?> arg0) { 289 } 290 }); 291 292 } 293 294 @Override 295 public boolean onCreateOptionsMenu(Menu menu) { 296 // Inflate the menu; this adds items to the action bar if it is present. 297 getMenuInflater().inflate(R.menu.activity_main, menu); 298 return true; 299 } 300 301 302 303 }