MainActivity:注:(由于我这里工程命名为了TestPro,所以mainActivity的实际类名为TestProActivity)
我们直接看代码,根据代码进行解释
package music.mic.act;
import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
public class TestProActivity extends TabActivity {
//首先我们要定义一个TabHost 对象,用来得到TabHost对象并进行界面处理。
TabHost Th;
//定义五个标签,用来标识每个界面所代表的含义及显示名称
public static final String Tab_Home = "Tab_Home";
public static final String Tab_1 = "音乐";
public static final String Tab_2 = "艺术家";
public static final String Tab_3 = "专辑";
public static final String Tab_4 = "最近播放";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//一下两行是对显示的窗口进行设置,第一个表示为没有标题的界面,第二行表示设置全屏显。这里注意,对于windows的属性设置需要在setContentView()方法之前执行,注意顺序问题。否则会报错。
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
//getResource()得到resource对象res
Resources res = getResources();
Th = getTabHost();
//getTabHost()得到TabHost对象
//定义Intent对象
//分别根据不同的界面要处理的不同事情进行设置Intent,并且得到TabSpec对象。
Intent intent;
intent = new Intent().setClass(this, ListActivity.class);
//注意 下面这句的Th.newTabSpec(Tab_1)中Tab_1并不是要显示的标签label,后面的setIndicator(Tab_1,res.getDrawable(R.drawable.item))中 Tab_1表示的是显示的信息,而后面表示要引用的资源,即对象的图片位置索引。
TabSpec ts1 = Th.newTabSpec(Tab_1).setIndicator(Tab_1, res.getDrawable(R.drawable.item));
//一下两句分别表示设置ts1的内容以及将ts1添加到Th这个TabHost中。
//下面的意义是一样的所以就不在多写了
ts1.setContent(intent);
Th.addTab(ts1);
intent = new Intent().setClass(this, ArtistsActivity.class);
TabSpec ts2 = Th.newTabSpec(Tab_2).setIndicator(Tab_2, res.getDrawable(R.drawable.artist));
ts2.setContent(intent);
Th.addTab(ts2);
intent = new Intent().setClass(this, AlbumsActivity.class);
TabSpec ts3 = Th.newTabSpec(Tab_3).setIndicator(Tab_3, res.getDrawable(R.drawable.album));
ts3.setContent(intent);
Th.addTab(ts3);
intent = new Intent().setClass(this, SongsActivity.class);
TabSpec ts4 = Th.newTabSpec(Tab_4).setIndicator(Tab_4, res.getDrawable(R.drawable.album));
ts4.setContent(intent);
Th.addTab(ts4);
//设置TabHost当前所在的Tab是id为0的界面
Th.setCurrentTab(0);
}
}
AndroidManifest.xml
//注意 这里的package的路径有很大作用,如果你要更改包名等同时要进行更改这个包名,因为你更改包名时,你的代码中是同步更改,但是这里不同时更改,需要手动的自己更改,不然会报错误 找不到对应的文件。 //设置android权限的代码自行查看就可以了
package="music.mic.act"
android:versionCode="1"
android:versionName="1.0" >
android:label="@string/app_name" >
android:label="@string/app_name" >