先说说最常用的button.
1. button 按纽
在main.xml文件里建立一个id为button的按扭
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(button_listener);
}
先绑定R.layout.main.然后用findViewById的方法创建了一个button 并用setOnClickListener的方法对其监听。 参数为botton_listener
对于这个参数 是这样定义的
private Button.OnClickListener button_listener = new Button.OnClickListener() {
public void onClick(View v) {
setTitle("点了一下");
}
};
使用了匿名内部类 对OnClickListener接口new了个对象 并做出了具体的实现。设置当前的Activity的title为"点了一下"。
2. TextView 标签(不可编辑的文本框)
这是其具体属性
<TextView
android:id="@+id/text_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="16sp" 带比例的像素
android:textColor="#ffffff"
android:padding="10dip"
android:background="#cc0000"
android:text="这里是TextView,你可以在这里输入需要显示的文字信息.."
/>
3. EditText 文本框 (可编辑的)
同上
4. CheckBox 多选框
<CheckBox android:id="@+id/plain_cb"
android:text="Plain"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<CheckBox android:id="@+id/serif_cb"
android:text="Serif"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:typeface="serif"
/>
<CheckBox android:id="@+id/bold_cb"
android:text="Bold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
/>
每一个CheckBox都有一个自己的id有自己的text 还可以设置自己的style 这个和html基本一样。
5. RadioGroup 单选
<RadioGroup
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:checkedButton="@+id/lunch"
android:id="@+id/menu">
<RadioButton
android:text="breakfast"
android:id="@+id/breakfast"
/>
<RadioButton
android:text="lunch"
android:id="@id/lunch" />
<RadioButton
android:text="dinner"
android:id="@+id/dinner" />
<RadioButton
android:text="all"
android:id="@+id/all" />
</RadioGroup>
外面是一个RadioGroup组件 有他自己的ID,里面包含多个RadioButton 每一个都有自己的ID 选中事件也是isChecked().
6. Spinner 下拉列表
下拉列表是要有内容的。感觉这个组件的实现方式相对麻烦一些。有两种实现的方式。
(1)先定义几个字符串 存在数组里
private static final String[] mCountries = { "China" ,"Russia", "Germany",
"Ukraine", "Belarus", "USA" };
spinner_c = (Spinner) findViewById(R.id.spinner_1);
allcountries = new ArrayList<String>(); 定义一个ArrayList<String>
for (int i = 0; i < mCountries.length; i++) {
allcountries.add(mCountries[i]); 遍历数组把内容存在集合里
}
aspnCountries = new ArrayAdapter<String>(this, 把集合放在ArrayAdapter对
android.R.layout.simple_spinner_item, allcountries); 象里并指定位置
aspnCountries
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner_c.setAdapter(aspnCountries);
调用ArrayAdapter对象的SetDropDownViewResource的方法
最后用spinner对象的setAdapter方法填加内容。
(2) 还可以在xml文件里预先定义数据
spinner_2 = (Spinner) findViewById(R.id.spinner_2);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.countries, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner_2.setAdapter(adapter);
<resources>
<!-- Used in Spinner/spinner_2.java -->
<string-array name="countries">
<item>China2</item>
<item>Russia2</item>
<item>Germany2</item>
<item>Ukraine2</item>
<item>Belarus2</item>
<item>USA2</item>
</string-array>
</resources>
在res/values/目录下建立array.xml的文件 然后通过R.array.countries找到
7. AutoCompleteTextView自动完成文本
对于这个组件,我觉得挺牛的。目前只会一个简单的自动匹配功能
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, COUNTRIES);
AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.auto_complete);
textView.setAdapter(adapter);
static final String[] COUNTRIES = new String[] {
"China" ,"Russia", "Germany",
"Ukraine", "Belarus", "USA" ,"China1" ,"China12", "Germany",
"Russia2", "Belarus", "USA"
};
把COUNTRIES数组的内容绑定进去
对应的xml
<AutoCompleteTextView android:id="@+id/auto_complete"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
在输入ch的时候 里面与其匹配的内容就自动显示出来了。 这个挺强大的,理解的还不深刻。
8. DatePicker 日期选择器
DatePicker dp = (DatePicker)this.findViewById(R.id.date_picker);
dp.init(2009, 5, 17, null);
用init方法进行初始化
<DatePicker
android:id="@+id/date_picker"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
9. TimePicker
跟上面的DatePicker差不多
10. ScrollView 滚动视图
当主界面要显示的内容超过一个屏幕的时候 可以在xml文件布局容器外面加上
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
用这个组件把他包起来,这样就OK了。
11. ProgressBar 进度条
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="圆形进度条" />
<ProgressBar
android:id="@+id/progress_bar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="水平进度条" />
<ProgressBar android:id="@+id/progress_horizontal"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="200dip"
android:layout_height="wrap_content"
android:max="100"
android:progress="50"
android:secondaryProgress="75" />
</LinearLayout>
12. SeekBar 拖动条
<SeekBar
android:id="@+id/seek"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:max="100"
android:thumb="@drawable/seeker"
android:progress="50"/>
android:thumb="@drawable/seeker" 可以设置拖动图表的图片
13. ImageView 图片视图
<ImageView
android:id="@+id/imagebutton"
android:src="@drawable/eoe"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
展示一张指定的图片 这个很简单
14. ImageSwitcher&Gallery(画廊) 切换图片
这个组件挺复杂的
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ImageSwitcher
android:id="@+id/switcher"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true" />
<Gallery android:id="@+id/gallery"
android:background="#55000000"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:gravity="center_vertical"
android:spacing="16dp" />
</RelativeLayout>
这是它的xml文件 它分为两部分 ImageSwitcher 和 Gallery 最终实现是屏幕上面展示一个大图,屏幕下面是一组可以滚动的图片。
代码比较复杂 这里就不介绍了
15. TabHost 切换面版
TabHost tabHost = getTabHost();
LayoutInflater.from(this).inflate(R.layout.tab_demo,
tabHost.getTabContentView(), true);
tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("tab1")
.setContent(R.id.view1));
tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("tab2")
.setContent(R.id.view2));
tabHost.addTab(tabHost.newTabSpec("tab3").setIndicator("tab3")
.setContent(R.id.view3));
先getTabHost()获取一个TabHost,然后绑定模板,进行绑定每个标签的内容关联,看下模板文件
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:id="@+id/view1"
android:background="@drawable/blue"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="这里是Tab1里的内容。"/>
<TextView android:id="@+id/view2"
android:background="@drawable/red"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="这里是Tab2,balabalal....。"/>
<TextView android:id="@+id/view3"
android:background="@drawable/green"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="Tab3"/>
</FrameLayout>
组件基本就这么多,感觉学这个 要多琢磨,多尝试。才能学好。