[解決済み] メソッドがそのスーパークラスのメソッドをオーバーライドしない
2022-01-24 15:39:48
質問
アクションバーのタイトルを設定しようとしているのですが、エラーメッセージ "メソッドがそのスーパークラスのメソッドをオーバーライドしていません" が表示されます。フラグメントを拡張しています。
以下は、問題のある部分です。
@Override
public void setTitle(CharSequence title) {
mTitle = title;
getActivity().getActionBar().setTitle(mTitle);
}
以下は、クラス全体のコードです(まだ作業中なので未完成です)。
package com.android.styles.radius360;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.view.Menu;
/**
* Created by user on 3/23/2017.
*/
public class HomePageFragment extends Fragment {
private String[] mOptions;
private DrawerLayout mDrawerLayout;
private ListView mDrawerList;
private CharSequence mTitle;
private ActionBarDrawerToggle mDrawerToggle;
private CharSequence mDrawerTitle;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.home_page, container, false);
mOptions = getResources().getStringArray(R.array.options_array);
mDrawerLayout = (DrawerLayout) v.findViewById(R.id.drawer_layout);
mDrawerList = (ListView) v.findViewById(R.id.left_drawer);
// Set the adapter for the list view
mDrawerList.setAdapter(new ArrayAdapter<String>(getActivity(),
R.layout.drawer_list_item, mOptions));
// Set the list's click listener
mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
mTitle = mDrawerTitle = getActivity().getTitle();
mDrawerLayout = (DrawerLayout) v.findViewById(R.id.drawer_layout);
mDrawerToggle = new ActionBarDrawerToggle(getActivity(), mDrawerLayout,
R.string.drawer_open, R.string.drawer_close) {
/** Called when a drawer has settled in a completely closed state. */
public void onDrawerClosed(View view) {
super.onDrawerClosed(view);
getActivity().getActionBar().setTitle(mTitle);
getActivity().invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
/** Called when a drawer has settled in a completely open state. */
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
getActivity().getActionBar().setTitle(mDrawerTitle);
getActivity().invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
};
// Set the drawer toggle as the DrawerListener
mDrawerLayout.setDrawerListener(mDrawerToggle);
return v;
}
@Override
public void onPrepareOptionsMenu(Menu menu) {
// If the nav drawer is open, hide action items related to the content view
super.onPrepareOptionsMenu(menu);
}
@Override
public void setTitle(CharSequence title) {
mTitle = title;
getActivity().getActionBar().setTitle(mTitle);
}
/* The click listner for ListView in the navigation drawer */
private class DrawerItemClickListener implements ListView.OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
selectItem(position);
}
}
/** Swaps fragments in the main content view */
private void selectItem(int position) {
// Create a new fragment and specify the planet to show based on position
if(position ==0)
{
FragmentManager fragmentManager = getFragmentManager();
SettingsPageActivity settings = new SettingsPageActivity();
Fragment fragment = settings.createFragment();
fragmentManager.beginTransaction()
.replace(R.id.content_frame, fragment)
.commit();
}
// Insert the fragment by replacing any existing fragment
// Highlight the selected item, update the title, and close the drawer
mDrawerList.setItemChecked(position, true);
mDrawerLayout.closeDrawer(mDrawerList);
}
}
解決方法は?
クラス
Fragment
またはそのスーパークラスのいずれかがメソッドを持たないようです。
public void setTitle(CharSequence title)
を使用することができないので
@Override
アノテーションを使用します。そのアノテーションを削除すれば問題ありません。
関連
-
[解決済み】HTTPステータス500 サーブレットクラスのインスタンス化エラー [重複]。
-
[解決済み】Javaを包含するクラスではないのか?
-
[解決済み】Java LinkedListでNodesを使用する
-
[解決済み] Javaはパラメータのデフォルト値をサポートしていますか?
-
[解決済み] ランダムな文字列を使用するこのコードは、なぜ "hello world" と表示されるのですか?
-
[解決済み] Could not find or load main class "とはどういう意味ですか?
-
[解決済み] なぜJavaにはtransientフィールドがあるのですか?
-
[解決済み] Eclipseにプロジェクトをインポートした後に「Must Override a Superclass Method」エラーが発生する。
-
[解決済み] FragmentでonActivityResultが呼び出されない
-
[解決済み】Javaではfinallyブロックは必ず実行されるのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】HTTPステータス 405 - リクエストメソッド「POST」はサポートされていません (Spring MVC)
-
[解決済み】Javaパッケージが存在しないエラー
-
[解決済み】Doubleはdereferencedできない?
-
[解決済み】「error: '.class' expected」の意味と修正方法について
-
[解決済み】なぜjava.io.Fileにはcloseメソッドがないのでしょうか?
-
[解決済み】JLabelのテキストを中央に配置するには?
-
[解決済み】Javaメソッドスタブ
-
[解決済み] [Solved] java.lang.NoClassDefFoundError: クラスXXXを初期化できませんでした。
-
[解決済み】予期しない型エラー
-
[解決済み] SQLエラー。0, SQLState: 08S01 通信リンクの失敗 [重複]。