android 界面添加返回一栏

老板一个项目,感觉上面加一个返回界面更加方便,不用每次都要按下右下角的返回键(本人小米2S).

首先 有一个主界面(MainActivity.java)里面一个按钮,点了这个按钮跳到另一个界面。

运行如下:

222359_vgkC_1377657.png

代码如下:

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.java

界面运行如下:

222533_JC5H_1377657.png

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

}

 

这个界面的布局也比较简单,就最上面一个相对布局,里面放返回按钮,布局代码如下

    <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是一个布局文件

第二个button里面的android:background="@drawable/btn_back"中的btn_back也是布局文件

再要注意的地方是属性是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文件就是今天主要的内容了。上面的意思就是:定义了这个按钮按下或者未被按下是的动作,对应的状态,分别显示按下时的图片和未被按下时的图盘。这样就可以达到按下时按钮的颜色不同的效果了。



 







转载于:https://my.oschina.net/u/1377657/blog/186563

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值