`

Android开发 - 常用控件

阅读更多

back>>

1. TextView

    * 用来显示文本的标签,类似SWT中的Label。在layout的main.xml布局文件中添加TextView组件

<TextView  
	android:id="@+id/myTextView02"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />

     * 在Java代码中得到该Textview

		TextView myTextView = (TextView) findViewById(R.id.myTextView02);
		myTextView.setText(String.valueOf(result));

 

2. EditText

    * 在布局文件中添加EditText组件

<EditText
	android:id="@+id/factorOne"
	android:layout_width="fill_parent"
	android:layout_height="wrap_content"
/>

     * 在Java代码中操作该组件

		EditText factorOne = (EditText) findViewById(R.id.factorOne);
		String factorOneStr = factorOne.getText().toString();

 

3. Button

    * 在布局文件中添加Button组件

<Button 
	android:id="@+id/calcaulate"
	android:layout_width="fill_parent"
	android:layout_height="wrap_content"
/>

    * 在Java代码中操作该组件

			Button calculate = (Button) findViewById(R.id.calcaulate);
			calculate.setText(R.string.calculate);

			//设置监听器。 listener利用了Observer的设计模式
			calculate.setOnClickListener(new CalculateListener());
。。。。
	// 内部类可以使用外部类的成员变量和函数
	// 内部类的学习
	class CalculateListener implements OnClickListener {

		public void onClick(View v) {
			/*
			 * 乘法 1.取两个EditText控件的值 2.将这两个值放到intent对象中
			 * 3.使用这个Intent对象启动Activity02
			 */
			String factorOneStr = factorOne.getText().toString();
			String factorTwoStr = factorTwo.getText().toString();

			Intent intent = new Intent();
			intent.putExtra("one", factorOneStr);
			intent.putExtra("two", factorTwoStr);

			intent.setClass(Activity01.this, Activity02.class);
			Activity01.this.startActivity(intent);

		}

	}

 

4. Menu

    * Menu控件不需要配置到布局文件中,当点击menu按钮时,会调用onCreateOptionsMenu(Menu menu)方法;

        - 调用系统提供的菜单项

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		menu.add(0, 1, 1, R.string.exit);//添加菜单项
		menu.add(0, 2, 2, R.string.about);
		return super.onCreateOptionsMenu(menu);
	}

        - 自定义菜单按钮控件,当点击菜单项中的按钮时,会调用onOptionsItemSelected(MenuItem item)

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		menu.add(0, UPDATE, 1, R.string.mp3list_update);
		menu.add(0, ABOUT, 2, R.string.mp3list_about);
		return super.onCreateOptionsMenu(menu);
	}
	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		if (item.getItemId() == UPDATE) {
			updateListView();//自定义操作方法
		} else if (item.getItemId() == ABOUT) {
			// 用户点击了关于按钮
		}
		return super.onOptionsItemSelected(item);
	}

5. 单选按钮和复选框 (代码见Activity_07)

    * 单选按钮

        - 单选按钮控件(RadioButton)需要显示在单选按钮组中(RadioGroup),布局文件声明如下

<RadioGroup
	android:id="@+id/genderGroup"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"
    >
    <RadioButton
    	android:id="@+id/femaleButton"
 	    android:layout_width="wrap_content" 
  	    android:layout_height="wrap_content" 
  	    android:text="@string/female"
  	    />
    <RadioButton
    	android:id="@+id/maleButton"
 	    android:layout_width="wrap_content" 
  	    android:layout_height="wrap_content" 
  	    android:text="@string/male"
  	    />
</RadioGroup>

        - 在java中操作,添加单选按钮事件监听

        RadioGroup genderGroup = (RadioGroup)findViewById(R.id.genderGroup);
        RadioButton femaleButton = (RadioButton)findViewById(R.id.femaleButton);
        RadioButton maleButton = (RadioButton)findViewById(R.id.maleButton);
        //为RadioGroup设置监听器,需要注意的是,这里的监听器和Button控件的监听器有所不同
        genderGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
			
			@Override
			public void onCheckedChanged(RadioGroup group, int checkedId) {
				// TODO Auto-generated method stub
				if(femaleButton.getId() == checkedId){
					System.out.println("female");
					Toast.makeText(RadioTest.this, "famle", Toast.LENGTH_SHORT).show();
				}
				else if(maleButton.getId() == checkedId)
				{
					System.out.println("male");
					Toast.makeText(RadioTest.this, "male", Toast.LENGTH_LONG).show();
				}
			}
		});

    * 复选框 

        - 布局文件如下

<CheckBox
	android:id="@+id/swim"
 	android:layout_width="wrap_content" 
  	android:layout_height="wrap_content" 
  	android:text="@string/swim"
  	/>
<CheckBox
	android:id="@+id/run"
 	android:layout_width="wrap_content" 
  	android:layout_height="wrap_content" 
  	android:text="@string/run"
  	/>
<CheckBox
	android:id="@+id/read"
 	android:layout_width="wrap_content" 
  	android:layout_height="wrap_content" 
  	android:text="@string/read"
  	/>

        - java中操作,添加事件监听

        CheckBox swimBox = (CheckBox)findViewById(R.id.swim);
         //为多选按钮添加监听器
        swimBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
			
			@Override
			public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
				// TODO Auto-generated method stub
				if(isChecked)
				{
					System.out.println("swim is checked");
				}
				else
				{
					System.out.println("swim is unchecked");
				}
			}
		});

    * 显示效果

 

6. Toast

    * 用来显示提示信息,通常显示在屏幕底部,使用非常简单

Toast.makeText(RadioTest.this, "famle", Toast.LENGTH_SHORT).show();

 

7. 进度条 (代码见progressbar)

    * 水平进度条

       - 布局文件中配置

<!-- style="?android:attr/progressBarStyleHorizontal" 进度条水平展示 进度条默认最大值为100-->
<ProgressBar
	android:id="@+id/firstBar"
	style="?android:attr/progressBarStyleHorizontal"
	android:layout_width="200px"
	android:layout_height="wrap_content"
	android:visibility="gone"
	android:max="200"
	/> 

        - java代码中操作进度条

	ProgressBar firstBar = (ProgressBar) findViewById(R.id.firstBar);
	Button myButton = (Button) findViewById(R.id.myButton);

	class ButtonListener implements OnClickListener {
		@Override
		public void onClick(View v) {

			if (i == 0) {
				//设置进度条处于可见状态
				firstBar.setVisibility(View.VISIBLE);
				firstBar.setMax(150);//设置进度条的最大值  方法二
				secondBar.setVisibility(View.VISIBLE);
			} else if (i < firstBar.getMax()) {
				//设置水平进度条的当前值
				firstBar.setProgress(i);
				firstBar.setSecondaryProgress(i + 10);
				
				//默认的进度条,不显示进度状态,因此,下面语句无意义
				secondBar.setProgress(i);
			} else {
				//设置进度条处于不可见状态
				firstBar.setVisibility(View.GONE);
				secondBar.setVisibility(View.GONE);
			}
			i += 10;
		}
	}

    * Android默认进度条 转圈显示

        - 布局文件中配置

<!-- style="?android:attr/progressBarStyle 转圈显示 -->	
<ProgressBar
	android:id="@+id/secondBar"
	style="?android:attr/progressBarStyle"
	android:layout_width="wrap_content"
	android:layout_height="wrap_content"
	android:visibility="gone"
	/>

    * 显示效果

 

8. 列表ListView (代码见progressbar)

    * 布局文件中配置

	<LinearLayout android:id="@+id/listLinearLayout"
    	android:orientation="vertical"
    	android:layout_width="fill_parent"
    	android:layout_height="fill_parent" >
    	<ListView android:id="@id/android:list"
    		android:layout_width="fill_parent"
    		android:layout_height="wrap_content"
    		android:drawSelectorOnTop="false"
    		android:scrollbars="vertical"/>
	</LinearLayout>

    * java代码。需要实现ListActivity接口

package mars.progressbar;

import java.util.ArrayList;
import java.util.HashMap;

import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import android.widget.SimpleAdapter;

public class ListTest extends ListActivity {

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.list);
		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", "zhangshan");
		map1.put("user_ip", "192.168.1.1");
		map2.put("user_name", "lisi");
		map2.put("user_ip", "192.168.1.2");
		map3.put("user_name", "wangwu");
		map3.put("user_ip", "192.168.1.3");

		list.add(map1);
		list.add(map2);
		list.add(map3);
		//R.layout.user 布局文件
		//new String[] { "user_name", "user_ip" } 指定列名,名字必须与map中的键名一致
		//new int[] {  R.id.user_name,R.id.user_ip } 对应R.layout.user中的两个TextView
		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);//将
	}
	
	//为ListView的每一行添加事件监听	
	@Override
	protected void onListItemClick(ListView l, View v, int position, long id) {
		super.onListItemClick(l, v, position, id);
		System.out.println("id:" + id);
		System.out.println("position:" + position);
	}
}

    * 显示效果

 

 

  • 大小: 23.5 KB
  • 大小: 15.7 KB
  • 大小: 16.3 KB
分享到:
评论

相关推荐

    Android移动平台开发-常用控件应用.doc

    Android 移动平台开发-常用控件应用 Android 移动平台开发是一门广泛应用于移动设备的操作系统,基于 Linux 内核,提供了丰富的应用程序接口(API)和工具,供开发者创建各种应用程序。本文将详细介绍 Android 移动...

    Android--开发--AnderWeb-Android--开发--_packages_appsrar

    在Android应用开发中,"Launcher"是一个至关重要的组件,它扮演着用户界面和应用程序启动器的角色。`Android--开发--AnderWeb-Android--开发--_packages_apps_Launcher-4458ee4`这个文件名暗示了我们正在探讨的是一...

    老罗Android开发视频教程-Android常用UI控件编程【32集】

    教程名称: 老罗Android开发视频教程-Android常用UI控件编程【32集】【】Android常用UI控件编程第七集【】Android常用UI控件编程第二十三集【】Android常用UI控件编程第二十九集【】Android常用UI控件编程第二十二...

    Android开发--便签

    在Android开发中,创建一个便签应用是一个常见的实践项目,它可以帮助开发者更好地理解和掌握用户界面组件、数据管理以及视图回收机制。本项目中,我们重点探讨了`ListView`和`RecyclerView`这两种常用的列表视图...

    Android移动平台开发-常用控件应用pdf

    1、掌握基本的控件使用,如button、edittext、radiobutton、AlertDialog等。2、精通 线性布局、相对布局、表格布局等的使用,能创建好看的安卓窗口页面3、学习适配器的使 用。 二、实验内容: 模拟 qq登录实现账号...

    androidsdk-platforms-android-25.rar

    首先,Android 7.1引入了App Shortcuts,这是一个允许开发者创建快捷方式的功能,用户可以通过长按应用图标快速访问常用功能或信息。这对于提升用户体验和应用的实用性有着显著的帮助,同时也为开发者提供了更多展示...

    Android开发--自定义控件实现listview的滑动删除item

    在Android应用开发中,ListView是常用的视图组件,用于...总之,自定义控件是Android开发中的一个重要技巧,它能帮助我们打造出独具特色的用户体验。记得在编写代码时遵循良好的编程实践,确保代码的可读性和可维护性。

    Android-android-commonAndroid常用公共库

    android-commonAndroid常用公共库”正是这样一个集合,它包含了多个实用模块,如ImageCache、HttpCache、DropDownListView、DownloadManager以及Utils,这些都是Android开发者在日常工作中经常需要用到的组件。...

    Android代码-Android开发常用整理

    Android开发常用整理(不断扩充中)包含各种工具类、线程池、日志、自定义的控件、程序崩溃捕捉处理、默认的Application配置、常用的Adapter等 注意: &gt; 如果需要使用FragmentTabAdapter,则需要android-support-v4....

    Android-StikkyHeader-Android控件源码头部固定的控件列表效果

    在Android开发中,使用"其它控件"通常指的是那些不在Android SDK默认提供的组件之列,但由社区开发并广泛使用的第三方控件。StikkyHeader就是一个这样的例子,它为开发者提供了更多的界面设计可能性,特别是对于需要...

    老罗android开发视频教程全集百度网盘下载

    【第一版第八章】老罗Android开发视频-常用UI控件(33集) 【第一版第九章】老罗Android开发视频--存储数据和文件(7集) 【第一版第十章】老罗Android开发视频--对话框介绍(4集) 【第一版第十一章】老罗...

    Android开发--华清远见android培训课件教程

    ### Android开发——华清远见Android培训课程精要 #### 一、版权与版权声明 本教程由华清远见嵌入式培训中心提供,版权所有。未经官方明确许可,不得以任何形式复制或传播此文档的任何部分。文档中的信息如有更改,...

    老罗Android入门到开发视频

    Android-09-常用UI控件(33集) Android-11-对话框介绍(4集) Android-12-通知的使用(2集) Android-13-菜单的使用(4集) Android-14-LoaderManager异步加载数据库(2集) Android-15-多线程编程(7)

    Android-PullToRefresh-master

    在Android平台上,ListView是一种常用的控件,用于显示大量的列表数据。然而,为了使应用更加生动、交互性更强,开发者通常会引入“拉动刷新”功能,让用户在滚动到列表顶部时能够手动触发新数据的加载。"Android-...

    android-studio-ide-201.7042882-windows.zip

    1. 使用Live Templates:Android Studio提供了大量预定义的代码模板,可以通过快捷键快速输入常用代码片段。 2. 常规设置优化:调整代码风格、代码格式化选项、自动保存等设置,以适应个人开发习惯。 3. 依赖管理...

    android开发常用图片

    本资源包“android开发常用图片”包含了全面的图片素材,适合Android开发者在构建应用时参考和使用。以下是对这些知识点的详细阐述: 1. **图片格式选择**:Android支持多种图片格式,如PNG、JPEG、GIF等。PNG适用...

    android开发-基于MVP+RxJava+Retrofit+EventBus+Arouter的Android组件化开发框架

    首先,MVP架构模式是Android开发中的常用设计模式,它将界面展示(View)、业务逻辑(Presenter)和数据模型(Model)分离,降低了耦合度。在MVP模式中,View负责与用户交互,Presenter作为桥梁处理View的请求并操作...

    Android代码-安卓常用组件

    安卓常用组件 ListViewLoad 说明:这是一个可以显示上拉加载更多的ListView. 实现方法: 创建要上拉后要显示的底部 编写自定义的view类继承ListView AndroidAnnotation 说明:安卓开发懒人框架(官网文档) ...

Global site tag (gtag.js) - Google Analytics