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(); 

相关文章
相关标签/搜索