1.5.33 Android ApiDemos 详解 App->Activity->Custom Title

Android ApiDemos详解之App->Activity->Custom Title

     开始之前需要先给大家解释一下,前两篇文章所用的都是2.3.3,但为了紧跟潮流,从这篇文章开始,SDK版本一致采用4.0,OK继续。

先来看看该例实现的功能:

(1).点击Custom Title

(2).该例子的布局包括如下两排控件,每一排都是由左边的一个EditText和右边的一个Button组成。功能为:点击”B2”,则将”A1”处文字改变为”B1”内的内容;同样,点击”C2”,则将”A2”处文字改变为”C1”内的内容。

看完该示例的功能图后先来分析一下Custom Title(继承Activity)内的主要代码: 

public class CustomTitleextends Activity {  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
   
        requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);  
        setContentView(R.layout.custom_title);  
        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title_1);    
        final TextView leftText = (TextView)findViewById(R.id.left_text);  
        final TextView rightText = (TextView)findViewById(R.id.right_text);  
        final EditText leftTextEdit = (EditText)findViewById(R.id.left_text_edit);  
        final EditText rightTextEdit = (EditText)findViewById(R.id.right_text_edit);  
        Button leftButton = (Button)findViewById(R.id.left_text_button);  
        Button rightButton = (Button)findViewById(R.id.right_text_button);  
         
        leftButton.setOnClickListener(new OnClickListener(){  
            public void onClick(View v) {  
               leftText.setText(leftTextEdit.getText());  
            }  
        });  
        rightButton.setOnClickListener(new OnClickListener(){  
            public void onClick(View v) {  
               rightText.setText(rightTextEdit.getText());  
            }  
        });  
    }  
}

其中在

 

setContentView(R.layout.custom_title)  

 

上有一句

 

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);  

 

requestWindowFeature(int)是用来设置Android应用程序窗体显示状态,其中int可以为如下选项值:

 

1.DEFAULT_FEATURES:系统默认状态,一般不需要指定

2.FEATURE_CONTEXT_MENU:启用ContextMenu,默认该项已启用,一般无需指定

3.FEATURE_CUSTOM_TITLE:自定义标题。当需要自定义标题时必须指定。如:标题是一个按钮时

4.FEATURE_INDETERMINATE_PROGRESS:不确定的进度

5.FEATURE_LEFT_ICON:标题栏左侧的图标

6. FEATURE_RIGHT_ICON:标题栏右侧的图标

7.FEATURE_OPTIONS_PANEL:启用“选项面板”功能,默认已启用。

8.FEATURE_PROGRESS:进度指示器功能

9. FEATURE_NO_TITLE:无标题

本例中的Window.FEATURE_CUSTOM_TITLE指的就是“自定义标题”。其中需要注意的是:

 

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);  
setContentView(R.layout.custom_title);  

 

 

 

这两句的顺序不能颠倒,也就是说如果在该Activity已经setContentView(int)之后再去设置窗体显示状态则会导致程序crash.

 

 

下面来看  getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.custom_title_1);

这一句是用来设置指定特征的特征值,在本例中则是为自定义窗体设置自定义的窗体布局。R.layout.custom_title_1这一id引用的则是layout/custom_title_1.xml布局文件,内容很简单,就是两个横向排列的TextView,代码如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/screen"  
    android:layout_width="match_parent" android:layout_height="match_parent"  
    android:orientation="vertical">  
    <TextView android:id="@+id/left_text"  
       android:layout_width="wrap_content"  
       android:layout_height="wrap_content"  
       android:layout_alignParentLeft="true"  
       android:text="@string/custom_title_left" />  
    <TextView android:id="@+id/right_text"  
       android:layout_width="wrap_content"  
       android:layout_height="wrap_content"  
       android:layout_alignParentRight="true"  
       android:text="@string/custom_title_right" />  
</RelativeLayout>  

 

这里需要解释的一点是,虽然大家看到父容器RelativeLayout的android:orientation属性设置的值是”vertical”也即就是垂直排布元素,但是该容器内的两个TextView分别设置了android:layout_alignParentLeft="true"和android:layout_alignParentRight="true",因而也就分属于父容器的左右两侧了。

 

而在代码中的leftText和rightText这两个TextView,就是分别映射对应着上述布局文件中的左右两个TextView。

剩下的代码就非常简单了,两个按钮注册监听器,点击Change Left按钮,通过leftTextEdit.getText()方法获取EditText内的内容,并用leftText.setText()方法填充到窗体左边的显示状态上;点击ChageRight道理相同。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值