注:这个例子来自“安卓巴士”,仅在此学习,阅读




    

下面给出实现各个组件的源代码

1.下拉框实现--Spinner

package com.cellcom;import java.util.ArrayList;
import java.util.List;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;//下拉框
public class SpinnerActivity extends Activity {private Spinner spinner1;private Spinner spinner2;private Button ok;private ArrayAdapter countiesAdapter;private String[] mCounties={"beijing","guangdong","guangxi","hunan"};private List<String> allCounties=new ArrayList<String>();private String result="你选择的是:";@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.spinner);spinner1=(Spinner)findViewById(R.id.spinner1);spinner2=(Spinner)findViewById(R.id.spinner2);ok=(Button)findViewById(R.id.ok);for(int i=0;i<mCounties.length;i++){allCounties.add(mCounties[i]);}countiesAdapter=new ArrayAdapter<String>(SpinnerActivity.this,android.R.layout.simple_spinner_item,allCounties);countiesAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);spinner1.setAdapter(countiesAdapter);ArrayAdapter adapter=ArrayAdapter.createFromResource(SpinnerActivity.this,R.array.counties,android.R.layout.simple_spinner_item);adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);spinner2.setAdapter(adapter);//单击第一个下拉按钮时,显示选择的值。 spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {@Overridepublic void onItemSelected(AdapterView<?> adapter, View view,int position, long id) {// TODO Auto-generated method stubString str=(String)spinner1.getAdapter().getItem((int)id);setTitle(result+str);}@Overridepublic void onNothingSelected(AdapterView<?> arg0) {// TODO Auto-generated method stub}});//单击第二个下拉按钮时,显示选择的值。 spinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {@Overridepublic void onItemSelected(AdapterView<?> adapter, View view,int position, long id) {String str=(String)spinner2.getAdapter().getItem(position);setTitle(result+str);}@Overridepublic void onNothingSelected(AdapterView<?> arg0) {}});//单击确定按钮,提取选择的值.ok.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {setTitle(result+spinner1.getSelectedItem()+"  - >>  "+spinner2.getSelectedItem());}});}}

2.对话框的实现--AlertDialog

package com.cellcom;import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;//对话框测试
public class AlertDialogActivity extends Activity {private Button button1;private Button button2;private Button button3;private Button button4;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.alert_dialog);setTitle("4种对话框!");button1=(Button)findViewById(R.id.button1);button2=(Button)findViewById(R.id.button2);button3=(Button)findViewById(R.id.button3);button4=(Button)findViewById(R.id.button4);//第一种对话框button1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Builder builder=new AlertDialog.Builder(AlertDialogActivity.this);builder.setIcon(R.drawable.alert_dialog_icon);builder.setTitle("哇哈哈!");builder.setMessage("去不去?");builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(AlertDialogActivity.this, "你选择了确定按钮!", Toast.LENGTH_SHORT).show();}});builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(AlertDialogActivity.this, "你选择了取消按钮!", Toast.LENGTH_SHORT).show();}});builder.show();}});//第二种对话框button2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {new AlertDialog.Builder(AlertDialogActivity.this).setIcon(R.drawable.alert_dialog_icon).setTitle("温馨提示").setMessage("提示内容:三个按钮").setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(AlertDialogActivity.this, "你选择了确定按钮!", Toast.LENGTH_SHORT).show();}}).setNeutralButton("详情", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(AlertDialogActivity.this, "你选择了详情按钮!", Toast.LENGTH_SHORT).show();}}).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(AlertDialogActivity.this, "你选择了取消按钮!", Toast.LENGTH_SHORT).show();}}).show();}});//第三种按钮button3.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {LayoutInflater inflater=LayoutInflater.from(AlertDialogActivity.this);final View textEntryView=inflater.inflate(R.layout.alert_dialog_text_entry, null);final EditText usernameET=(EditText)textEntryView.findViewById(R.id.username_value);final EditText passwordET=(EditText)textEntryView.findViewById(R.id.password_value);//final String username=usernameET.getText().toString();new AlertDialog.Builder(AlertDialogActivity.this).setIcon(R.drawable.alert_dialog_icon).setTitle("温馨提醒").setView(textEntryView).setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(AlertDialogActivity.this, "用户名="+usernameET.getText().toString()+"\n密码="+passwordET.getText().toString(), Toast.LENGTH_LONG).show();}}).setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {Toast.makeText(AlertDialogActivity.this, "你选择了确定取消!", Toast.LENGTH_SHORT).show();}}).show();}});//第四种对话框button4.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {ProgressDialog dialog=new ProgressDialog(AlertDialogActivity.this);dialog.setTitle("处理中。。。");dialog.setMessage("请稍后。。。");dialog.show();}});}
}

3.自动提示框的实现--AutoCompleteTextView

package com.cellcom;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;//自动提示框
public class AutoCompleteTextViewActivity extends Activity {private AutoCompleteTextView autoComplete;private Button cleanButton;static final String[] COUNTRIES = new String[] {"China" ,"Russia", "Germany","Ukraine", "Belarus", "USA" ,"China1" ,"China12", "Germany","Russia2", "Belarus", "USA" ,"UAA","UBC","UBB","CCC","BBB","广州1","广州2","广州3","广州4","广东1","广东2","广东3",};@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.auto_complete_text_view);setTitle("AutoCompleteTextView示例!");autoComplete=(AutoCompleteTextView)findViewById(R.id.auto_complete);cleanButton=(Button)findViewById(R.id.cleanButton);ArrayAdapter<String> adapter=new ArrayAdapter<String>(AutoCompleteTextViewActivity.this,android.R.layout.simple_dropdown_item_1line,COUNTRIES);autoComplete.setAdapter(adapter);//清空cleanButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {autoComplete.setText("");}});}}

4.Activity之间传递数据--Bundle

package com.cellcom;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;/*** @author nwang* * 输入身高和选择性别,计算标准体重。并把数据返回到原来Activity*/
public class Bundle1Activity extends Activity {private int my_requestCode=1550;private RadioButton sexMan;private RadioButton sexWoman;private EditText heightEdit;private Button okButton;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.bundle1);sexMan=(RadioButton)findViewById(R.id.sex_man);sexWoman=(RadioButton)findViewById(R.id.sex_woman);heightEdit=(EditText)findViewById(R.id.height_edit);okButton=(Button)findViewById(R.id.button_ok);okButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {double height=Double.parseDouble(heightEdit.getText().toString());String sex="";if(sexMan.isChecked()){sex="M";}else{sex="F";}Intent intent=new Intent();intent.setClass(Bundle1Activity.this, Bundle2Activity.class);//封装数据Bundle bundle=new Bundle();bundle.putDouble("height", height);bundle.putString("sex", sex);intent.putExtras(bundle);startActivityForResult(intent, my_requestCode);}});}//回调方法@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);switch (requestCode) {case RESULT_OK://RESULT_OK表示返回成功,提取数据。Bundle bundle=data.getExtras();String sex=bundle.getString("sex");double height=bundle.getDouble("height");heightEdit.setText(String.valueOf(height));if(sex.equals("M")){sexMan.setChecked(true);}else{sexWoman.setChecked(true);}break;default:break;}}}
package com.cellcom;import java.text.DecimalFormat;
import java.text.NumberFormat;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;public class Bundle2Activity extends Activity{private TextView result;private Button backButton;Intent intent=null;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.bundle2);result=(TextView)findViewById(R.id.result);backButton=(Button)findViewById(R.id.button_back);intent=this.getIntent();Bundle bundle=intent.getExtras();double height=bundle.getDouble("height");String sex=bundle.getString("sex");String sexStr="";if("M".equals(sex)){sexStr="男性";}else{sexStr="女性";}String weight=this.getWeight(sex, height);result.setText("你是一位:"+sexStr+"\n身高是:"+height+"厘米 \n你的标准体重:"+weight+"公斤");//返回上一页backButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Bundle2Activity.this.setResult(RESULT_OK, intent);    Bundle2Activity.this.finish();}});}public String getWeight(String sex,double height){String weight="";if("M".endsWith(sex)){weight=format((height-80)*0.7);}else{weight=format((height-70)*0.6);}return weight;}public String format(double num){NumberFormat formatter=new DecimalFormat("0.00");String s=formatter.format(num);return s;}
}

5.复选框--CheckBox

package com.cellcom;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;public class CheckBoxActivity extends Activity {private CheckBox plainCB;private CheckBox serifCB;private CheckBox boldCB;private CheckBox italicCB;private Button button1;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.check_box);plainCB=(CheckBox)findViewById(R.id.plain_cb);serifCB=(CheckBox)findViewById(R.id.serif_cb);boldCB=(CheckBox)findViewById(R.id.bold_cb);italicCB=(CheckBox)findViewById(R.id.italic_cb);button1=(Button)findViewById(R.id.button1);button1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String result="";if(plainCB.isChecked()){result+=plainCB.getText()+"、";}if(serifCB.isChecked()){result+=serifCB.getText()+"、";}if(boldCB.isChecked()){result+=boldCB.getText()+"、";}if(italicCB.isChecked()){result+=italicCB.getText()+"、";}if(!"".equals(result)){result=result.substring(0,result.length()-1);}else{result="你没有选择!!!";}setTitle("Checked:"+result);}});}}

6.菜单的实现--Menu

package com.cellcom;import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.TextView;public class ContextMenuActivity extends Activity {private final static int ITEM0=Menu.FIRST;private final static int ITEM1=Menu.FIRST+1;private final static int ITEM2=Menu.FIRST+2;private TextView tv;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.context_menu);setTitle("单击Menu键看到效果!");tv=(TextView)findViewById(R.id.tv1);this.registerForContextMenu(tv);//将上下文注册到TextView}@Overridepublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {menu.add(0, ITEM0, 0, "红色背景");menu.add(0,ITEM1,0,"绿色背景");menu.add(0,ITEM2,0,"白色背景");}@Overridepublic boolean onContextItemSelected(MenuItem item) {switch (item.getItemId()) {case ITEM0:tv.setTextColor(Color.RED);break;case ITEM1:tv.setTextColor(Color.GREEN);break;case ITEM2:tv.setTextColor(Color.WHITE);break;default:break;}return true;}}

7.日期选择器--DataTimePicker

package com.cellcom;import java.text.SimpleDateFormat;
import java.util.Date;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.TimePicker;//DatePicker日期选择器、TimePicker时间选择器 使用
public class DatePickerActivity extends Activity {private Button datePickerButton;private DatePicker datePicker1;private TimePicker timePicker1;//默认生成系统当前时间SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm");       String str=sdf.format(new Date());int year=Integer.parseInt(str.substring(0, 4));int month=Integer.parseInt(str.substring(5,7))-1;int day=Integer.parseInt(str.substring(8,10));int hour=Integer.parseInt(str.substring(11,13));int minute=Integer.parseInt(str.substring(14,16));@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.date_picker);setTitle("DatePicker、TimePicker示例!");datePicker1=(DatePicker)findViewById(R.id.datePicker1);timePicker1=(TimePicker)findViewById(R.id.timePicker1);datePickerButton=(Button)findViewById(R.id.datePickerButton1);datePicker1.init(year,month,day, null);timePicker1.setCurrentHour(hour);timePicker1.setCurrentMinute(minute);timePicker1.setIs24HourView(true);datePickerButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {setTitle("你选择的是:"+datePicker1.getYear()+"年"+datePicker1.getMonth()+"月"+datePicker1.getDayOfMonth()+"日 "+timePicker1.getCurrentHour()+"小时"+timePicker1.getCurrentMinute()+"分");}});}}

8.网格视图控件--GridView

package com.cellcom;import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;//网络视图控件
public class GridViewActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.grid_view);setTitle("网络视图控件GridView!");GridView gridView=(GridView)findViewById(R.id.grid_view);gridView.setAdapter(new ImageAdapter(this));}public class ImageAdapter extends BaseAdapter{private Context mContext;public ImageAdapter(Context context){mContext=context;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn mImageIds.length;}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn null;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn 0;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ImageView imageView;if(convertView==null){imageView=new ImageView(mContext);imageView.setLayoutParams(new GridView.LayoutParams(85,85));imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);imageView.setPadding(8, 8, 8, 8);}else{imageView=(ImageView)convertView;}imageView.setImageResource(mImageIds[position]);return imageView;}}private Integer[] mImageIds = {R.drawable.sample_0, R.drawable.sample_1, R.drawable.sample_2,R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5,R.drawable.sample_6, R.drawable.sample_7,R.drawable.sample_8,R.drawable.sample_9,R.drawable.sample_10,R.drawable.sample_11};}

9.进度条控件--ProgressBar

package com.cellcom;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;import android.widget.TextView;/*** * @author nwang* * 进度条ProgressBar与线程使用。单击开始按钮,进度条水平方向前进!**/
public class ProgressBarHandlerActivity extends Activity {/** Called when the activity is first created. */private Button startButton;private Button stopButton;private TextView result;private ProgressBar firstProgressBar;private final static int defaultValue=10;private int i=0;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.progress_bar);setTitle("ProgressBar使用!");startButton=(Button)findViewById(R.id.startButton);stopButton=(Button)findViewById(R.id.stopButton);result=(TextView)findViewById(R.id.result);firstProgressBar=(ProgressBar)findViewById(R.id.firstProgressBar);firstProgressBar.setVisibility(0);//刚开始设置进度条可见startButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {/*i+=defaultValue;firstProgressBar.setProgress(i);firstProgressBar.setSecondaryProgress(i+defaultValue);*/result.setText(((double)i/firstProgressBar.getMax()*100)+"%");handler.post(progressBarThread);}});stopButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {handler.removeCallbacks(progressBarThread);         }});}//创建Handler对象Handler handler=new Handler();//创建线程对象MyRunnable progressBarThread=new MyRunnable();class MyRunnable implements Runnable{@Overridepublic void run() {i+=defaultValue;handler.postDelayed(progressBarThread, 1000);firstProgressBar.setProgress(i);firstProgressBar.setSecondaryProgress(i+defaultValue);result.setText(((double)i/firstProgressBar.getMax()*100)+"%");if(i>=firstProgressBar.getMax()) i=0;}}}

10.单选控件--RadioGroup

package com.cellcom;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;//单选控件
public class RadioGroupActivity extends Activity {private RadioButton radioFemale;private RadioButton radioMale;private Button ok;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.radio_group);radioFemale=(RadioButton)findViewById(R.id.radioFemale);radioMale=(RadioButton)findViewById(R.id.radioMale);ok=(Button)findViewById(R.id.ok);ok.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String result="你选择的是:";if(radioFemale.isChecked()){setTitle(result+"女");}else{setTitle(result+"男");}}});}}

11.打分组件--RatingBar

package com.cellcom;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import android.widget.RatingBar;
import android.widget.Toast;//评分组件RatingBar、ImageView图片、 ImageButton图片按钮
public class RatingBarActivity extends Activity {private RatingBar ratingBar;private ImageButton imageButton;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.rating_bar);setTitle("评分组件RatingBar、ImageView图片、 ImageButton图片按钮");ratingBar=(RatingBar)findViewById(R.id.rating_bar);imageButton=(ImageButton)findViewById(R.id.imageButton);imageButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(RatingBarActivity.this, "单击图片按钮!!", Toast.LENGTH_LONG).show();}});}
}

12.标签控件--Tab

package com.cellcom;import android.app.TabActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.widget.TabHost;//标签控件Tab
public class TabDemoActivity extends TabActivity {public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setTitle("标签控件Tab");TabHost tabHost=getTabHost();LayoutInflater.from(this).inflate(R.layout.tab, tabHost.getTabContentView(),true);tabHost.addTab(tabHost.newTabSpec("biaoqian1").setIndicator("标签tab1").setContent(R.id.tab1));tabHost.addTab(tabHost.newTabSpec("biaoqian2").setIndicator("标签tab2").setContent(R.id.tab2));tabHost.addTab(tabHost.newTabSpec("biaoqian3").setIndicator("标签tab3").setContent(R.id.tab3));}
}

13.子菜单的实现--SubMenu

package com.cellcom;import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;//子菜单subMenu
public class SubMenuActivity extends Activity {private final static int ITEM_NEW_FILE=Menu.FIRST;private final static int ITEM_OPEN_FILE=Menu.FIRST+1;private final static int ITEM_COPY=Menu.FIRST+2;private final static int ITEM_CLOSE=Menu.FIRST+3;private final static int ITEM_SAVE=Menu.FIRST+4;private final static int ITEM_SAVE_ALL=Menu.FIRST+5;private final static int ITEM_CUT=Menu.FIRST+6;private final static int ITEM_PASTE=Menu.FIRST+7;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.sub_menu);setTitle("单击Menu键看到效果!");}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {SubMenu file=menu.addSubMenu("文件");SubMenu edit=menu.addSubMenu("编辑");file.add(0,ITEM_NEW_FILE,0,"新建");file.add(0,ITEM_OPEN_FILE,0,"打开");file.add(0,ITEM_CLOSE,0,"关闭");file.add(0,ITEM_SAVE,0,"保存");file.add(0,ITEM_SAVE_ALL,0,"保存全部");edit.add(0,ITEM_COPY,0,"复制");edit.add(0,ITEM_CUT,0,"剪切");edit.add(0,ITEM_PASTE,0,"粘贴");return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {switch (item.getItemId()) {case ITEM_NEW_FILE:setTitle("新建文件!");break;case ITEM_OPEN_FILE:setTitle("打开文件");break;case ITEM_COPY:setTitle("复制文件");break;default:break;}return true;}
}

注:需要源代码的请留下邮箱地址或点击下方的链接自行下载

http://download.csdn.net/detail/dlutbrucezhang/5061337

一个Demo让你掌握所有的android控件相关推荐

  1. android radiobutton_时隔一年,用新知识重构一个Android控件老库

    一年前,用 Java 写了一个高可扩展选择按钮库.单个控件实现单选.多选.菜单选,且选择模式可动态扩展. 一年后,一个新的需求要用到这个库,项目代码已经全 Kotlin 化,强硬地插入一些 Java ...

  2. android让一个控件跟上面控件对其,学个明白--Android控件架构

    Android控件架构 1.什么是View? View是Android中所有控件的基类.View是界面层的控件的一种抽象,它代表了一个控件.在Android中每个控件都会在界面中占得一块矩形的区域.在 ...

  3. android tv 开发布局,Android TV开发总结(七)构建一个TV app中的剧集列表控件

    前言:剧集类控件,在TV app中非常常见,今天将介绍构建一个TV app中的剧集列表控件,此控件上传到我的Github:https://github.com/hejunlin2013/Episode ...

  4. 自定义控件android.r,Android控件架构与自定义控件

    前言 最近在开发的路上越走越远了,每天在看各位大神公众号更新内容是自定义View的时候,一些小的内容有点模具,决定回过头来温习一下过往的内容.此篇也是根据android群英传来总结的一篇文章. 1 A ...

  5. android上传文件用哪个布局,每周总结20130821——android控件的尺寸、http文件上传...

    Android控件的尺寸 android开发中,可以通过编写XML格式的布局文件来实现布局,也可以用纯代码进行布局,通常都是选择XML文件布局.在XML布局文件中,与控件的尺寸有关的属性有androi ...

  6. Android 控件 RecyclerView 看这篇就够了

    [Android 控件 RecyclerView] 概述 RecyclerView是什么 从Android 5.0开始,谷歌公司推出了一个用于大量数据展示的新控件RecylerView,可以用来代替传 ...

  7. Android群英传笔记——第三章:Android控件架构与自定义控件讲解

    Android群英传笔记--第三章:Android控件架构与自定义控件讲解 真的很久没有更新博客了,三四天了吧,搬家干嘛的,心累,事件又很紧,抽时间把第三章大致的看完了,当然,我还是有一点View的基 ...

  8. Android 控件 RecyclerView

    [Android 控件 RecyclerView] 概述 RecyclerView是什么 从Android 5.0开始,谷歌公司推出了一个用于大量数据展示的新控件RecylerView,可以用来代替传 ...

  9. Android控件架构与自定义控件

    引言 最近在开发的路上越走越远了,每天在看各位大神公众号更新内容是自定义View的时候,一些小的内容有点模具,决定回过头来温习一下过往的内容.此篇也是根据android群英传来总结的一篇文章. 1 A ...

最新文章

  1. java基础学习(2)-java基本数据类型
  2. 春节奖励“玩套路”?饿了么致歉!
  3. MySQL中truncate误操作后的数据恢复案例
  4. mysql的高级特性
  5. synchronized同步对象锁
  6. yii 清除mysql缓存_Yii2开启数据表结构缓存和清除
  7. Boost:双图bimap与Boost类型的测试程序
  8. Android BroadcastReceiver广播详解
  9. Nacos分布式应用配置管理
  10. ajax异步加载和cmd,异步传输Ajax(JQ)
  11. 限制对象在堆或栈中声明
  12. ArcGIS Pro快速汉化方法
  13. leetcode—21.二叉树路径和相关题目leetcode总结
  14. LayaAir 获取对象边界 getBounds/ getGraphicBounds
  15. 常用通信光缆型号是如何命名的
  16. git拉取代码提示:本地分支 has no tracked branch
  17. 7-12 输出大写英文字母 (15 分)
  18. 51nod:1079 中国剩余定理(数学)
  19. 《西瓜书》笔记整理——第一章
  20. 非常好看的一款404错误页面

热门文章

  1. Lucene 源码分析之倒排索引(三)
  2. CentOS学习笔记 - 4. 修改端口和禁止root登录
  3. LuManager 高危SQL注入0day分析
  4. 企业推广OA信息化三大法宝
  5. 第七章 培养负责的习惯
  6. Kafka压力测试(写入MQ消息压测和消费MQ消息压测)
  7. UOJ#272. 【清华集训2016】石家庄的工人阶级队伍比较坚强
  8. leetcode-383-Ransom Note(以空间换时间)
  9. C语言实现链式栈(LinkStack)
  10. Unity3D Instantiate慢的问题