android 界面添加返回一欄

老闆一個項目,感受上面加一個返回界面更加方便,不用每次都要按下右下角的返回鍵(本人小米2S).java

首先 有一個主界面(MainActivity.java)裏面一個按鈕,點了這個按鈕跳到另外一個界面。android

運行以下:app

代碼以下:ide

package com.example.topback;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {

	private Button button_to_second = null;
	
	
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button_to_second = (Button)findViewById(R.id.btn_to_second);
        button_to_second.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Intent intent = new Intent();
				intent.setClass(MainActivity.this, Second.class);
				startActivity(intent);
			}
		});
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
}

 主界面的佈局很簡單,就一個按鈕。佈局

接下來是第二個界面Second.javathis

界面運行以下:spa

package com.example.topback;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Second extends Activity{

	private Button button_back = null;
	private Button button_more = null;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_second);
		button_back = (Button)findViewById(R.id.btn_back);
		button_more = (Button)findViewById(R.id.btn_more);
		
		button_back.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				finish();
			}
		});
		
		button_more.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Intent intent = new Intent();
				intent.setClass(Second.this, More.class);
				startActivity(intent);
			}
		});
	}

}

 

這個界面的佈局也比較簡單,就最上面一個相對佈局,裏面放返回按鈕,佈局代碼以下 code

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

	<RelativeLayout
	        android:id="@+id/top_relative"
	        android:layout_width="fill_parent"
	        android:background="@drawable/head_bg"
	        android:layout_height="50.0dip" >
		<Button
	        android:id="@+id/btn_back"
	        android:layout_width="wrap_content"
	        android:background="@drawable/back" //這裏很關鍵  將在下面講解
	        android:layout_height="wrap_content"
	        android:layout_centerVertical="true"
	        android:layout_gravity="center_vertical"
	        android:layout_marginLeft="5.0dip"
	        android:textColor="@android:color/white"
	        android:text="返回"
	         />
	    <TextView
	        android:id="@+id/titleText"
	        android:layout_width="wrap_content"
	        android:layout_height="wrap_content"
	        android:layout_centerInParent="true"
	        android:textSize="18dp"
	        android:text="標題文字"
	        android:textColor="@android:color/white"
	        android:singleLine="true" />
	      <Button
	        android:id="@+id/btn_more"
	        android:layout_width="wrap_content"
	        android:background="@drawable/btn_back"//這裏同上面的註釋
	        android:layout_height="wrap_content"
	        android:layout_centerVertical="true"
	        android:layout_alignParentRight="true"
	        android:layout_gravity="center_vertical"
	        android:layout_marginRight="5.0dip"
	        android:textColor="@android:color/white"
	        android:text="更多"
	         />
	</RelativeLayout>

</RelativeLayout>

上面佈局代碼很簡單,可是要注意 button標籤裏面android:background="@drawable/back"中的back是一個佈局文件orm

第二個button裏面的android:background="@drawable/btn_back"中的btn_back也是佈局文件xml

再要注意的地方是屬性是background

詳細以下:

back.xml

<?xml version="1.0" encoding="utf-8"?>  
<selector xmlns:android="http://schemas.android.com/apk/res/android">    
	<item   
	    android:state_selected="false"   
		android:state_pressed="false"
		android:drawable="@drawable/back_normal"   
	 />   
	<item   
	    android:state_selected="false"   
		android:state_pressed="true"
		android:drawable="@drawable/back_pressed"   
	 />   
	<item   
	    android:state_selected="true"
		android:drawable="@drawable/back_pressed"   
	 />  
</selector>

btn_back.xml

<?xml version="1.0" encoding="utf-8"?>  
<selector xmlns:android="http://schemas.android.com/apk/res/android">    
    <item   
        android:state_selected="false"   
        android:state_pressed="false"
        android:drawable="@drawable/btn_normal"   
         />   
    <item   
        android:state_selected="false"   
        android:state_pressed="true"
        android:drawable="@drawable/btn_pressed"   
         />   
    <item   
        android:state_selected="true"
        android:drawable="@drawable/btn_pressed"   
         />  
</selector>

以上兩個.xml文件就是今天主要的內容了。上面的意思就是:定義了這個按鈕按下或者未被按下是的動做,對應的狀態,分別顯示按下時的圖片和未被按下時的圖盤。這樣就能夠達到按下時按鈕的顏色不一樣的效果了。

相關文章
相關標籤/搜索