これは私の最初の Android アプリです。iPhone 開発者として 3 年間働いていますが、考え方が変わりました。まず、この iPhone の背景が問題を引き起こしているかどうかはわかりませんが、私がやろうとしていることは次のとおりです。
iOS の TabBar のように機能する 2 つのオプションを持つ ActionBar を実装したいと考えています。
私が欲しいのは、ユーザーがアクションを選択すると、いくつかのアクティビティがユーザーに表示されることです。
これが私がこれまでにやっていることです(それほど多くはありません):
- 私はActionBarSherlockを使用しています.3つのアクティビティがあります.myApp、First、Second
myapp.java は ActionBar 要素のみを作成し、以下をロードしますactivity_first
。
package com.example.myApp;
import com.actionbarsherlock.ActionBarSherlock;
import com.actionbarsherlock.view.MenuItem;
import android.os.Bundle;
import com.actionbarsherlock.ActionBarSherlock.OnCreateOptionsMenuListener;
import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.Menu;
public class myApp extends SherlockActivity implements OnCreateOptionsMenuListener {
ActionBarSherlock mSherlock = ActionBarSherlock.wrap(this);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle("myApp");
mSherlock.setContentView(R.layout.activity_first);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add("First")
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
menu.add("Second")
.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT);
return true;
}
}
アクティビティには、生成されたスタブを除いて、これまでのところ何もありません。
import android.app.Activity;
import android.os.Bundle;
public class First extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
}
}
だから私は1つの質問と1つの問題があります:
- 質問: これは ActivityBar の正しい使い方ですか? つまり、アクティビティを切り替えるために使用する必要がありますか?
- 問題: myApp クラスの OnCreate メソッドでわかるように
activity_first
、アクティビティをロードしていますが、次のように ActionBar を 2 回ロードしています。
2回ロードされる理由がわかりません。行を削除するmSherlock.setContentView(R.layout.activity_first);
と、バーが一度読み込まれます。明らかに、アクティビティを読み込む必要があります...
また、XML (activity_first.xml) のグラフィカル エディターで NoActionBar テーマを activity_first に割り当てましたが、機能しません。一度だけロードするにはどうすればよいですか。
貴重なお時間をありがとうございました。