TabLayoutを作成しましたが、メインクラスからロードする最初の画面になるように設定すると正常に機能します。私はここのチュートリアルに従いました:http://joshclemm.com/blog/ ?p = 136
ただし、最初にロードするものにはしたくありません。
が付いたアプリケーションがありsplashscreen
、home
タブのない画面に移動します。たくさんのボタンがあります。次に、ボタンの1つをクリックするtabgroup
と、に配置されているビューをロードしたいので、通常のタブをクリックします。Androidでこの基本的なことを行う方法について何かアイデアはありますか?
ランタイム例外エラーが発生し続けます。
java.lang.RuntimeException: Unable to start activity ComponentInfo{ttj.android.ft/ttj.android.ft.Transfers}: java.lang.IllegalStateException: Did you forget to call 'public void setup(LocalActivityManager activityGroup)'
これが私のonCreate
メソッドコードです。
Transfers
クリックすると、と呼ばれるボタンがありますTransfers.class activity
。これはタブレイアウトであるはずですが、開きません。アクティビティはAndroidマニフェストにあります。私は初心者なので、おそらくここで非常に単純な間違ったことをしていることを知っています。
助けていただければ幸いです!
public class MainActivity extends Activity {
Button Records, Transfers, Leagues;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Transfers = (Button) findViewById(R.id.bTransfers);
Transfers.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Intent openTransfers = new Intent(MainActivity.this,
Transfers.class);
startActivity(openTransfers);
}
});
これが私のAndroidマニフェストです
<activity
android:name=".Splash"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="ttj.android.ft.STARTINGPOINT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".Transfers"
android:label="@string/app_name" >
<intent-filter>
<action android:name="ttj.android.ft.TRANSFERS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
クラッシュしたときのlogcatからのログは次のとおりです。
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity
java.lang.IllegalStateException: Did you forget to call 'public void setup(LocalActivityManager activityGroup)'?
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
at android.app.ActivityThread.access$600(ActivityThread.java:123)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalStateException: Did you forget to call 'public void setup(LocalActivityManager activityGroup)'?
at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:680)
at android.widget.TabHost.setCurrentTab(TabHost.java:346)
at android.widget.TabHost.addTab(TabHost.java:236)
at ttj.android.ft.Transfers.onCreate(Transfers.java:52)
at android.app.Activity.performCreate(Activity.java:4465)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
転送アクティビティコード
public class Transfers extends TabActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.m_transfers);
TabHost mTabHost = getTabHost();
Intent intentTeams = new Intent().setClass(this, TransfersTeams.class);
TabSpec teamsTab = mTabHost.newTabSpec("TEAMS").setIndicator("")
.setContent(intentTeams);
Intent intentSummary = new Intent().setClass(this,
TransfersSummary.class);
TabSpec summaryTab = mTabHost.newTabSpec("SUMMARY").setIndicator("")
.setContent(intentSummary);
mTabHost.addTab(teamsTab);
mTabHost.addTab(summaryTab);
mTabHost.setCurrentTab(0);
}
修繕
私のクラスTransfersTeamsとTransfersSummaryはTabActivityを拡張していました。これをActivityに変更しましたが、現在は機能しています。