老板一个项目,感觉上面加一个返回界面更加方便,不用每次都要按下右下角的返回键(本人小米2S).
首先 有一个主界面(MainActivity.java)里面一个按钮,点了这个按钮跳到另一个界面。
运行如下:
代码如下:
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
界面运行如下:
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文件就是今天主要的内容了。上面的意思就是:定义了这个按钮按下或者未被按下是的动作,对应的状态,分别显示按下时的图片和未被按下时的图盘。这样就可以达到按下时按钮的颜色不同的效果了。