Android(4)常用控件
来源:互联网 发布:淘宝网产品销量排名 编辑:程序博客网 时间:2024/06/18 11:31
1 RadioGroup、Checkbox、Toast
layout文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:id="@+id/label" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Type here:" /> <RadioGroup android:id="@+id/genderGroup" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/label" android:orientation="horizontal" > <RadioButton android:id="@+id/femaleButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="female"android:button="@null" android:drawableRight="@android:drawable/btn_radio" /> <!-- 选定按钮放在右侧 --> <RadioButton android:id="@+id/maleButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="male" /> </RadioGroup> <CheckBox android:id="@+id/swim" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="swim" android:layout_below="@id/genderGroup" android:layout_alignParentRight="true" /> <CheckBox android:id="@+id/run" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="run" android:layout_toLeftOf="@id/swim" android:layout_alignTop="@id/swim" /> </RelativeLayout>
为radioGroup和checkbox添加监听器:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); genderGroup = (RadioGroup) findViewById(R.id.genderGroup); genderGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup rg, int chId) {// -----Toast的用法Toast.makeText(MainActivity.this, "female", Toast.LENGTH_SHORT).show();}}); ((CheckBox)findViewById(R.id.run)).setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton arg0, boolean arg1) {System.out.println(arg1);}}); }
2 ProgressBar
layout.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:id="@+id/label" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Type here:" /> <ProgressBar android:id="@+id/firstbar" style="?android:attr/progressBarStyleHorizontal" android:layout_width="200dp" android:layout_height="20dp" android:visibility="gone" android:layout_below="@id/label" /> <ProgressBar android:id="@+id/secondbar" style="?android:attr/progressBarStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:visibility="gone" android:layout_below="@id/firstbar" /> <Button android:id="@+id/mybutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="begin" android:layout_below="@id/secondbar" /> </RelativeLayout>Progressbar:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); firstbar = (ProgressBar) findViewById(R.id.firstbar); secondbar = (ProgressBar) findViewById(R.id.secondbar); mybutton = (Button) findViewById(R.id.mybutton); mybutton.setOnClickListener(new Button.OnClickListener() {@Overridepublic void onClick(View view) {if(progressStatus ==0) {firstbar.setVisibility(View.VISIBLE);secondbar.setVisibility(View.VISIBLE);} else if(progressStatus < firstbar.getMax()) {firstbar.setProgress(progressStatus);firstbar.setSecondaryProgress(progressStatus+10); // 进度条前面虚的进度secondbar.setProgress(progressStatus);} else {firstbar.setVisibility(View.GONE);secondbar.setVisibility(View.GONE);}progressStatus+=10;}}); }
3 ListView+GridView
3.1 ListView
mainlayout.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <LinearLayout android:id="@+id/listlinearlayout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > <ListView android:id="@id/android:list" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawSelectorOnTop="false" android:scrollbars="vertical" ></ListView> </LinearLayout></LinearLayout>UserLayout.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" android:paddingLeft="10dip" android:paddingRight="10dip" android:paddingTop="1dip"android:paddingBottom="1dip" > <TextView android:id="@+id/user_name" android:layout_width="100dip" android:layout_height="30dip" android:textSize="10pt" android:singleLine="true" /> <TextView android:id="@+id/user_ip" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="right" android:textSize="10pt" /> </LinearLayout>ListView.java:
public class MainActivity extends ListActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String,String>>(); HashMap<String, String> map1 = new HashMap<String, String>(); HashMap<String, String> map2 = new HashMap<String, String>(); HashMap<String, String> map3 = new HashMap<String, String>(); map1.put("user_name", "zhangsan"); map1.put("user_ip", "192.168.1.1"); map2.put("user_name", "lisi"); map2.put("user_ip", "192.168.1.1"); map3.put("user_name", "wangwu"); map3.put("user_ip", "192.168.1.1"); list.add(map1); list.add(map2); list.add(map3); // 通过适配器将数据显示到ListView SimpleAdapter listAdapter = new SimpleAdapter( this, list, R.layout.user, new String[]{"user_name", "user_ip"}, new int[]{R.id.user_name, R.id.user_ip}); setListAdapter(listAdapter); }@Overrideprotected void onListItemClick(ListView l, View v, int position, long id) {// TODO Auto-generated method stubsuper.onListItemClick(l, v, position, id);System.out.println("id = " + id);System.out.println("postition = " + position);}}
3.2 GridView
layout.xml
<GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gridview" android:layout_width="fill_parent" android:layout_height="fill_parent" android:columnWidth="90dp" android:numColumns="auto_fit" android:verticalSpacing="10dp" android:horizontalSpacing="10dp" android:stretchMode="columnWidth" android:gravity="center"/>MainActivity.java
public class MainActivity extends Activity {@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); GridView gridview = (GridView) findViewById(R.id.gridview); gridview.setAdapter(new ImageAdapter(this)); gridview.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {Toast.makeText(MainActivity.this, ""+position, Toast.LENGTH_LONG).show();} });}class ImageAdapter extends BaseAdapter {private Integer[] mThumbIds = {R.drawable.sample1, R.drawable.sample2, R.drawable.sample3,R.drawable.sample4, R.drawable.sample5, R.drawable.sample6, R.drawable.sample7,R.drawable.sample8, R.drawable.sample9, R.drawable.sample10, R.drawable.sample11,R.drawable.sample12};private Context context;public ImageAdapter(Context context) {super();this.context = context;}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn mThumbIds.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(context);imageView.setLayoutParams(new GridView.LayoutParams(85, 120));imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);imageView.setPadding(0, 0, 0, 0);} else {imageView = (ImageView)convertView;}imageView.setImageResource(mThumbIds[position]);return imageView;}}}
4 日期时间控件
4.1 DatePicker
Main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" android:orientation="vertical" > <TextView android:id="@+id/dateDisplay" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:textSize="20sp" android:text="" /> <Button android:id="@+id/pickDate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:text="修改时间" /> <DatePicker android:id="@+id/datePicker" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>MainActivity.java
public class MainActivity extends Activity {TextView mDateDisplay;Button mPickDate;DatePicker datePicker;private int mYear, mMonth, mDay; private static final int DATE_DIALOG_ID = 0;@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mDateDisplay = (TextView) findViewById(R.id.dateDisplay); mPickDate = (Button) findViewById(R.id.pickDate); mPickDate.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {showDialog(DATE_DIALOG_ID);}}); final Calendar c = Calendar.getInstance(); mYear = c.get(Calendar.YEAR); mMonth = c.get(Calendar.MONTH); mDay = c.get(Calendar.DAY_OF_MONTH); updateDisplay(); datePicker = (DatePicker) findViewById(R.id.datePicker); datePicker.init(mYear, mMonth, mDay, new DatePicker.OnDateChangedListener() {@Overridepublic void onDateChanged(DatePicker view, int year, int monthOfYear,int dayOfMonth) {Toast.makeText(MainActivity.this, year+"-"+(monthOfYear+1), Toast.LENGTH_LONG).show();}}); }@Overrideprotected Dialog onCreateDialog(int id) {switch (id) {case DATE_DIALOG_ID:return new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay);default:break;}return null;} private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {@Overridepublic void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) {mYear = year;mMonth = monthOfYear;mDay = dayOfMonth;updateDisplay();}};private void updateDisplay() {mDateDisplay.setText(new StringBuilder().append("时间:").append(mYear).append("-").append(mMonth+1).append("-").append(mDay));}}
4.2 TimePicker
MainActivity.java
public class MainActivity extends Activity {TextView mTimeDisplay;Button mPickTime;TimePicker TimePicker;private int mHour, mMinute; private static final int Time_DIALOG_ID = 0;@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTimeDisplay = (TextView) findViewById(R.id.dateDisplay); mPickTime = (Button) findViewById(R.id.pickDate); mPickTime.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {showDialog(Time_DIALOG_ID);}}); final Calendar c = Calendar.getInstance();// for (String str : TimeZone.getAvailableIDs()) {// System.out.println(str);//} c.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai")); mHour = c.get(Calendar.HOUR_OF_DAY); mMinute = c.get(Calendar.MINUTE); upTimeDisplay(); }@Overrideprotected Dialog onCreateDialog(int id) {switch (id) {case Time_DIALOG_ID:return new TimePickerDialog(this, mTimeSetListener, mHour, mMinute, true);default:break;}return null;} private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() {@Overridepublic void onTimeSet(TimePicker view, int hourOfDay, int minute) {mHour = hourOfDay;mMinute = minute;upTimeDisplay();}};private void upTimeDisplay() {mTimeDisplay.setText(new StringBuilder().append("时间:").append(pad(mHour)).append(":").append(pad(mMinute)));}private static String pad(int c) {if(c>=10) {return String.valueOf(c);} else {return "0"+String.valueOf(c);}}}
5 TabWidget
TabWidget通过多个标签切换显示不同的内容。要实现这一效果,需要先了解TabHost,它是一个存放多个Tab标签的容器。每个Tab都可以对应自己的布局。
5.1 在一个容器中编写
Activity.xml
<?xml version="1.0" encoding="utf-8"?><TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" > </TabWidget> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent" android:paddingTop="65px" > <LinearLayout android:id="@+id/Tab1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > <EditText android:id="@+id/edtTab1" android:layout_width="fill_parent" android:layout_height="wrap_content" > </EditText> <Button android:id="@+id/btnTab1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Tab1" > </Button> </LinearLayout> <LinearLayout android:id="@+id/Tab2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <EditText android:id="@+id/edtTab2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="300" > </EditText> <Button android:id="@+id/btnTab2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Tab2" > </Button> </LinearLayout> </FrameLayout></TabHost>
MainActivity.java
public class MainActivity extends TabActivity {//基于TabActivity构建Button btnTab1,btnTab2;EditText edtTab1,edtTab2; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TabHost tabs = getTabHost(); //设置Tab1 TabSpec tab1 = tabs.newTabSpec("tab1"); tab1.setIndicator("tab1"); // 设置tab1的名称 tab1.setContent(R.id.Tab1); // 关联控件 tabs.addTab(tab1); // 添加tab1 btnTab1=(Button)this.findViewById(R.id.btnTab1); edtTab1=(EditText)this.findViewById(R.id.edtTab1); btnTab1.setOnClickListener(new ClickEvent()); //设置Tab2 TabSpec tab2 = tabs.newTabSpec("tab2"); tab2.setIndicator("tab2"); tab2.setContent(R.id.Tab2); tabs.addTab(tab2); btnTab2=(Button)this.findViewById(R.id.btnTab2); edtTab2=(EditText)this.findViewById(R.id.edtTab2); btnTab2.setOnClickListener(new ClickEvent()); tabs.setCurrentTab(0); } class ClickEvent implements View.OnClickListener {@Overridepublic void onClick(View v) {if(v==btnTab1){edtTab1.setText("tab1");}else if(v==btnTab2){edtTab2.setText("tab2");}} }}
5.2 分容器编写
ic_tab_artists.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/ic_tab_artists_white" android:state_selected="true" /> <item android:drawable="@drawable/ic_tab_artists_grey" /></selector>ic_tab_album.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/ic_tab_album_grey" android:state_selected="false" /> <item android:drawable="@drawable/ic_tab_album_white" android:state_selected="true" /></selector>main.xml
<TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dp" > <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" ></TabWidget> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dp" > </FrameLayout> </LinearLayout></TabHost>MainActivity.java
public class MainActivity extends TabActivity {@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Resources res = getResources(); TabHost tabHost = getTabHost(); TabHost.TabSpec spec; Intent intent; intent = new Intent().setClass(this, ArtistsActivity.class); spec = tabHost.newTabSpec("artists").setIndicator("Artists", res.getDrawable(R.drawable.ic_tab_artists)).setContent(intent); tabHost.addTab(spec); intent = new Intent().setClass(this, AlbumsActivity.class); spec = tabHost.newTabSpec("albums").setIndicator("Albums", res.getDrawable(R.drawable.ic_tab_album)).setContent(intent); tabHost.addTab(spec); tabHost.setCurrentTab(1);}}
6 Spinner+AutoComplete
6.1 Spinner
Strings.xml
<?xml version="1.0" encoding="utf-8"?><resources> <string name="app_name">Radio</string> <string name="action_settings">Settings</string> <string name="hello_world">Hello world!</string><string name="planet_prompt">Choose a planet</string><string-array name="planets_array"> <item>Mercury</item> <item>Venus</item> <item>Earth</item> <item>Mars</item> <item>Jupiter</item> <item>Saturn</item> <item>Uranus</item></string-array></resources>Layout.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10dip" android:text="@string/planet_prompt" /> <Spinner android:id="@+id/spinner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:prompt="@string/planet_prompt" /> </LinearLayout>MainActivity.java
public class MainActivity extends Activity {@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Spinner spinner = (Spinner) findViewById(R.id.spinner); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( this, R.array.planets_array, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter);}}
6.2 AutoComplete
list_ite.xml
<TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:textColor="#000" android:padding="10dp" android:textSize="16sp" ></TextView>Layout.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Country" /> <AutoCompleteTextView android:id="@+id/autocomplete_country" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="5dp" /> </LinearLayout>MainActivity.java
public class MainActivity extends Activity {static final String[] countries = new String[] { "Africa", "Belarus","china", "changchun" };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_country);ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.list_item, countries);textView.setAdapter(adapter);}}
阅读全文
0 0
- Android(4)常用控件
- android 常用控件 (GridView)
- Android常用控件(二)
- Android 常用 控件(三)
- Android常用控件(三)
- android常用控件(2)
- Android 常用控件(一)
- Android 常用控件(二)
- Android 常用控件(三)
- Android 常用控件(四)
- android常用控件(二)
- Android常用控件(Widget)
- android 常用控件(一)
- Android(4)---Android 控件布局常用属性
- android控件与常用控件
- android 常用控件 时钟控件
- android控件与常用控件
- Android 常用控件讲解 --控件
- Maven打包可执行jar 分离配置文件和lib
- C#中的 int?是什么意思
- JAVA网络
- 可用性 available 简析
- SQL真题分析
- Android(4)常用控件
- 物化视图增量方式
- Android 如何 ListView 判断滚动到最顶部或者底部
- poj 1927 计算几何 解题报告
- 【嵌入式开发】DM6467T环境搭建
- Kotlin基本语法
- python学习二(字符,计算)
- linux 下使用 tc 模拟网络延迟和丢包
- 继续深究支持向量机---超详细讲解(比三层理解SVM好)