Android 第九課——UI 組件

組件繼承關係圖: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(); 

相關文章
相關標籤/搜索