組件繼承關係圖:java
組件通用屬性:android
1)layout_width:組件的寬度,通常只有三個值wrap_content、fill_parent(老版本中使用)、match_parent,但他不是惟一控制寬度的元素app
2)layout_height:組件的高度,通常只有三個值wrap_content、fill_parent(老版本中使用)、match_parent,但他不是惟一控制高度的元素ide
3)width:組件的寬度,他也不是惟一控制寬度的元素,他和layout_width共同決定組件的寬度佈局
4)height:組件的高度,他也不是惟一控制高度的元素,他和layout_height共同決定組件的高度學習
5)text:文本內容this
6)hint:文本內容爲空時,顯示這個元素指定的內容spa
7)singleLine:文本內容若是過長,則不徹底展現文本內容,用盛省略號替代code
8)gravity:組件內內容對齊方式,他與android:layout_gravity有着本質區別,android:layout_gravity是指自身在父組件中對齊方式orm
9)visibility:組件是否顯示,visible默認值:顯示;invisible:不顯示,可是佔有空間;gone:不顯示,且不佔用空間
10)textSize:文本大小,與文本相關的屬性都有text開頭如textStyle
11)autoLink:文本內容爲Email、電話號碼等形式的,當用戶靠近文本是顯示超連接形式
注意:關於layout_width 與 width 的區別(layout_height 與 height 同理):
1)兩者共同決定組件的大小
2)當layout_width設置爲fill_parent或match_parent時,width是不會起做用的,緣由是已經爲最大值了,由layout_width決定。
3)當layout_width設置爲wrap_content時,width和wrap_content在系統計算後,誰的寬度大誰來決定組件最後的寬度。
1 TextView
文本控件主要包括TextView控件和EditText控件,TextView類繼承自View類,TextView就是向用戶顯示文本,且不容許編輯,相似HTML中的Label標籤。
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="30sp" android:width="200dp" android:height="300dp" android:visibility="visible" android:gravity="center" android:autoLink="email" android:singleLine="false" android:hint="@string/app_name" android:text="@string/maxtext" />
2 EditText
文本控件主要包括TextView控件和EditText控件,EditText類繼承自TextView類,EditView就是一個能夠編輯的文本域,相似HTML中input的type爲text,固然能夠設置他的類型。採用android:inputType設置文本類型,這個屬性是很是重要的。
<EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:inputType="textPassword" android:textSize="30sp" android:width="200dp" android:height="300dp" android:visibility="visible" android:gravity="center" android:autoLink="email" android:singleLine="false" android:hint="@string/app_name" />
3 Button
Button按鈕式組件中最經常使用之一,他是TextView的子類,同時他自身的間接子類也很豐富,主要有:CheckBox, RadioButton, ToggleButton ,學習Button最重要的不是佈局,而是他的事件監聽,如何處理監聽事件以下:
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="30sp" android:width="200dp" android:height="300dp" android:visibility="visible" android:gravity="center" android:autoLink="email" android:singleLine="false" android:hint="@string/app_name" android:text="@string/login" />
第一種方式:
須要注意:
1)onClick指定的方法必須在Activity中聲明,並且採用public void 的方式,參數必須有 View類型的。
2)ManiFest文件並非必定要這樣設置,這裏只是意思註冊Activity
Activity中以下設置:
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); this.setContentView(R.layout.mainlayout); } public void clickMe(View view){ Toast.makeText(this, "hello world", Toast.LENGTH_SHORT).show(); } }
layout中以下設置:
<Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="30sp" android:width="200dp" android:height="300dp" android:visibility="visible" android:gravity="center" android:autoLink="email" android:singleLine="false" android:hint="@string/app_name" android:text="@string/login" android:onClick="clickMe" />
ManiFest文件中以下設置:
<activity android:name="com.leagsoft.moon.activity.MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity>
第二種方式:
須要注意:
1)不須要在用onClick方法指定事件監聽處理,若是指定了onClick的方法,他也會被以下這種方式覆蓋。
2)Activity中須要實現接口OnClickListener,而後註冊在咱們指定的按鈕中。
3)更推薦使用這種方式。
Activity中以下設置:
public class MainActivity extends Activity { private Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.mainlayout); btn = (Button)findViewById(R.id.btn); btn.setOnClickListener(new BtnClickImpl()); } class BtnClickImpl implements OnClickListener{ @Override public void onClick(View arg0) { Toast.makeText(MainActivity.this, "hello world", Toast.LENGTH_SHORT).show(); } } }
layout中和ManiFest配置文件基本相同。
4 Toast
主要用來信息提示,相似Javascript中的alert,可是比alert要人性化了。
Toast.makeText(Context, "hello world", Toast.LENGTH_SHORT).show();