code>>>

View Code
  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 }
posted on 2012-12-03 11:48  hanxun  阅读(380)  评论(0编辑  收藏  举报