android–自訂title

來源:互聯網
上載者:User

android預設的title只是顯示字串,有時候為了吸引使用者的眼球或者操作方便,得搞點個人化的東西。

實現方法是在onCreate()方法開始,加入

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);<br />setContentView(view);<br />getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title); 注意這三行代碼的順序不能隨意改變。


在R.layout.title

<?xml version="1.0" encoding="utf-8"?><br /><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"<br />android:layout_width="fill_parent"<br /> android:layout_height="fill_parent"><br /> <ImageView<br /> android:id="@+id/Titlhome"<br /> android:layout_width="wrap_content"<br /> android:layout_height="wrap_content"<br /> android:layout_alignParentLeft="true"<br /> android:layout_marginTop="3dp"<br /> android:src="@drawable/home"/><br /> <TextView<br /> android:id="@+id/Titletext"<br /> android:layout_width="wrap_content"<br /> android:layout_height="wrap_content"<br /> android:layout_centerHorizontal="true"<br /> android:textSize="21dp"<br /> android:layout_marginTop="3dp"<br /> android:textColor="#ffffffff"<br /> android:textStyle="bold"/><br /><Button<br />android:id="@+id/TitleBackBtn"<br /> android:layout_width="wrap_content"<br /> android:layout_height="wrap_content"<br /> android:background="@drawable/returnback"<br /> android:gravity="center"<br /> android:layout_marginTop="9dp"<br /> android:layout_alignParentRight="true"/><br /></RelativeLayout><br />
</p><p>import android.app.Activity;<br />import android.app.AlertDialog;<br />import android.content.DialogInterface;<br />import android.content.Intent;<br />import android.os.Bundle;<br />import android.view.KeyEvent;<br />import android.view.View;<br />import android.view.View.OnClickListener;<br />import android.view.Window;<br />import android.widget.Button;<br />import android.widget.TextView;</p><p>public class TitleBarBackActivity extends Activity {<br />private TextView tvTitle;<br />private Button btnBack;<br />private Button btnNext;<br /> /** Called when the activity is first created. */<br /> @Override<br /> public void onCreate(Bundle savedInstanceState) {<br /> setTheme(R.style.CustomTheme);<br /> super.onCreate(savedInstanceState);<br /> requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);<br /> setContentView(R.layout.main);<br /> getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title);<br /> tvTitle =(TextView) findViewById(R.id.Titletext);<br /> tvTitle.setText("標題列返回按鈕測試介面");<br /> btnBack =(Button) findViewById(R.id.TitleBackBtn);<br /> btnBack.setOnClickListener(new OnClickListener() {</p><p>@Override<br />public void onClick(View v) {<br />// TODO Auto-generated method stub<br />KeyEvent newEvent =new KeyEvent(KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_BACK);<br />onKeyDown(KeyEvent.KEYCODE_BACK, newEvent);<br />}<br />});</p><p> btnNext =(Button) findViewById(R.id.Button);<br /> btnNext.setOnClickListener(new OnClickListener() {</p><p>@Override<br />public void onClick(View v) {<br />// TODO Auto-generated method stub<br />Intent intent =new Intent();<br />intent.setClass(TitleBarBackActivity.this,Next.class);<br />startActivity(intent);<br />}<br />});</p><p> }</p><p>@Override<br />public boolean onKeyDown(int keyCode, KeyEvent event) {<br />if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {<br />// 按下的如果是BACK,同時沒有重複<br />askForOut();</p><p>return true;<br />}</p><p>return super.onKeyDown(keyCode, event);<br />}</p><p>private void askForOut() {<br />AlertDialog.Builder builder = new AlertDialog.Builder(this);</p><p>builder.setTitle("確定退出").setMessage("確定退出?").setPositiveButton("確定",<br />new DialogInterface.OnClickListener() {<br />@Override<br />public void onClick(DialogInterface dialog, int which) {<br />finish();<br />}<br />}).setNegativeButton("取消",<br />new DialogInterface.OnClickListener() {<br />@Override<br />public void onClick(DialogInterface dialog, int which) {<br />dialog.cancel();<br />}<br />}).setCancelable(false).show();<br />}</p><p>}為了讓title裡內容能看清,設定下他的style

<?xml version="1.0" encoding="utf-8"?><br /><resources><br /><style name="CustomTheme" parent="android:Theme"><br /><item name="android:windowTitleSize">40dip</item><br /></style><br /></resources>
<br />import android.app.Activity;<br />import android.os.Bundle;<br />import android.view.KeyEvent;<br />import android.view.View;<br />import android.view.Window;<br />import android.view.View.OnClickListener;<br />import android.widget.Button;<br />import android.widget.TextView;</p><p>public class Next extends Activity {<br />@Override<br />public void onCreate(Bundle savedInstanceState) {<br />setTheme(R.style.CustomTheme);<br />super.onCreate(savedInstanceState);<br />requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);<br />setContentView(R.layout.next);<br />getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title);</p><p>tvTitle = (TextView) findViewById(R.id.Titletext);</p><p>tvTitle.setText("標題列返回按鈕測試介面2");</p><p>btnBack = (Button) findViewById(R.id.TitleBackBtn);</p><p>btnBack.setOnClickListener(new OnClickListener() {<br />public void onClick(View v) {<br />System.out.println("Back ..........");<br />KeyEvent newEvent = new KeyEvent(KeyEvent.ACTION_DOWN,<br />KeyEvent.KEYCODE_BACK);<br />onKeyDown(KeyEvent.KEYCODE_BACK, newEvent);<br />}<br />});<br />}</p><p>public Button btnBack;<br />public TextView tvTitle;<br />}
給個效果:


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.