android 入门-----HelloTabWidget运行异常停止解决

来源:互联网 发布:网络系统 编辑:程序博客网 时间:2024/05/09 03:55

    在按照google的例子做HelloTabWidget时,运行HelloTabWidget程序异常停止,解决方法如下:

1. 在AndroidManifest.xml文件增加下面三行,这也是唯一例子中没有给出的代码:
    <activity android:name=".AlbumsActivity"  android:label="@string/app_name"></activity>     <activity android:name=".ArtistsActivity"  android:label="@string/app_name"></activity>     <activity android:name=".SongsActivity"  android:label="@string/app_name"></activity> 

2. 把AlbumsActivity,ArtistsActivity和SongsActivity分别放到三个java文件里,代码按照google说明就可以。
3. 添加相关图标,并建立ic_tab_albums.xml,ic_tab_artists.xml和ic_tab_songs.xml三个文件,按照google说明就可以。
同样下面附上源代码:
HelloTabWidget.java 
package com.example.HelloTabWidget;import android.app.TabActivity;import android.content.Intent;import android.content.res.Resources;import android.os.Bundle;import android.widget.TabHost;public class HelloTabWidget extends TabActivity   {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        Resources res = getResources(); // Resource object to get Drawables        TabHost tabHost = getTabHost();  // The activity TabHost        TabHost.TabSpec spec;  // Resusable TabSpec for each tab        Intent intent;  // Reusable Intent for each tab        // Create an Intent to launch an Activity for the tab (to be reused)        intent = new Intent().setClass(this, ArtistsActivity.class);        // Initialize a TabSpec for each tab and add it to the TabHost        spec = tabHost.newTabSpec("artists").setIndicator("Artists",                          res.getDrawable(R.drawable.ic_tab_artists))                      .setContent(intent);        tabHost.addTab(spec);        // Do the same for the other tabs        intent = new Intent().setClass(this, AlbumsActivity.class);        spec = tabHost.newTabSpec("albums").setIndicator("Albums",                          res.getDrawable(R.drawable.ic_tab_albums))                      .setContent(intent);        tabHost.addTab(spec);        intent = new Intent().setClass(this, SongsActivity.class);        spec = tabHost.newTabSpec("songs").setIndicator("Songs",                          res.getDrawable(R.drawable.ic_tab_songs))                      .setContent(intent);        tabHost.addTab(spec);        tabHost.setCurrentTab(2);    }}

AlbumsActivity.java(ArtistsActivity.java和SongsActivity.java照着改就行了)
package com.example.HelloTabWidget;import android.app.Activity;import android.os.Bundle;import android.widget.TextView;public class AlbumsActivity extends Activity {    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        TextView textview = new TextView(this);        textview.setText("This is the Albums tab");        setContentView(textview);    }}

AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.example.HelloTabWidget"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk android:minSdkVersion="15" />    <application        android:icon="@drawable/ic_launcher"        android:label="@string/app_name" >        <activity            android:name=".HelloTabWidget"            android:label="@string/app_name"            android:theme="@android:style/Theme.NoTitleBar">            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    <activity android:name=".AlbumsActivity"  android:label="@string/app_name"></activity>     <activity android:name=".ArtistsActivity"  android:label="@string/app_name"></activity>     <activity android:name=".SongsActivity"  android:label="@string/app_name"></activity>     </application></manifest>

ic_tab_albums.xml(其它两个照着抄就可以了):
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">    <!-- When selected, use grey -->    <item android:drawable="@drawable/ic_tab_albums_grey"          android:state_selected="true" />    <!-- When not selected, use white-->    <item android:drawable="@drawable/ic_tab_albums_white" /></selector>


原创粉丝点击