私の主な活動には、アクションバーがあります。新しいアクティビティを開始しても、これを表示したままにするにはどうすればよいですか?
これを機能させるには、新しいアクティビティでメイン アクティビティを拡張する必要がありますか?
私の主な活動には、アクションバーがあります。新しいアクティビティを開始しても、これを表示したままにするにはどうすればよいですか?
これを機能させるには、新しいアクティビティでメイン アクティビティを拡張する必要がありますか?
アクションバーに要素を配置するメソッドを宣言するonCreateOptionMenu
と、メインアクティビティ (A) で、そのメソッドを再宣言せずに A を拡張する他のすべてのアクティビティは、A の同じアクションバーを持ちます。
Android メニュー オプションは、画面のアクション バーから選択するアクションやその他のオプションをユーザーに提供します。これらのアクションの一部は、アプリケーションのすべてのアクティビティに共通であるため、アクティビティごとに作成する代わりに、Activity クラスを拡張してすべてのメニュー処理を行う BaseActivity を作成できます。次に、アプリケーション アクティビティの基本アクティビティ クラスを拡張して、同じメニュー オプションを取得できます。
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends BaseActivity implements OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button nextActivity = (Button) findViewById(R.id.nextActivity);
nextActivity.setOnClickListener(this);
}
}
これがBaseActivityクラスです
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
public class BaseActivity extends Activity{
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.common_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Do Code Here
default:
return super.onOptionsItemSelected(item);
}
}
}
お役に立てば幸いです。
ここで説明したのと同じ実装パターン (継承/構成) を使用できます
検索機能用。onCreateOptionMenuメソッドで説明したことを実行するだけで、各アクティビティに同じ退屈な 3 行のコードを記述する必要なく、すべてのアクティビティで同じものを使用できます。