Androidでショッピングサイトを作成中です。
Mypageを作成しているのですが、Settinds Activityを利用したいと思い設定を行ったところ
【MypageをFragmentに変換できません】というエラーが出てしまいます。
java
1 2MainActivity.java 3 4import android.os.Bundle; 5import android.support.annotation.NonNull; 6import android.support.design.widget.BottomNavigationView; 7import android.support.v4.app.Fragment; 8import android.support.v7.app.AppCompatActivity; 9import android.view.MenuItem; 10import android.widget.TextView; 11 12public class MainActivity extends AppCompatActivity { 13 14 @Override 15 protected void onCreate(Bundle savedInstanceState) { 16 super.onCreate(savedInstanceState); 17 setContentView(R.layout.activity_main); 18 19 BottomNavigationView navigation = findViewById(R.id.navigation); 20 navigation.setOnNavigationItemSelectedListener(navListner); 21 } 22 23 private BottomNavigationView.OnNavigationItemSelectedListener navListner = 24 new BottomNavigationView.OnNavigationItemSelectedListener() { 25 @Override 26 public boolean onNavigationItemSelected(@NonNull MenuItem item) { 27 Fragment selectedFragment = null; 28 29 switch (item.getItemId()) { 30 case R.id.navigation_product: 31 selectedFragment = new Product(); 32 break; 33 case R.id.navigation_cart: 34 selectedFragment = new Cart(); 35 break; 36 case R.id.navigation_delivery_status: 37 selectedFragment = new Delivery_Status(); 38 break; 39 case R.id.navigation_mypage: 40 selectedFragment = new Mypage(); 41 break; 42 } 43 44 getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, 45 selectedFragment).commit(); 46 47 return true; 48 } 49 }; 50}
java
1 2Mypage.java 3 4import android.annotation.TargetApi; 5import android.content.Context; 6import android.content.Intent; 7import android.content.res.Configuration; 8import android.media.Ringtone; 9import android.media.RingtoneManager; 10import android.net.Uri; 11import android.os.Build; 12import android.os.Bundle; 13import android.preference.ListPreference; 14import android.preference.Preference; 15import android.preference.PreferenceActivity; 16import android.support.v4.app.Fragment; 17import android.support.v7.app.ActionBar; 18import android.preference.PreferenceFragment; 19import android.preference.PreferenceManager; 20import android.preference.RingtonePreference; 21import android.text.TextUtils; 22import android.view.MenuItem; 23 24import java.util.List; 25 26public class Mypage extends AppCompatPreferenceActivity { 27 28 private static Preference.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener = new Preference.OnPreferenceChangeListener() { 29 @Override 30 public boolean onPreferenceChange(Preference preference, Object value) { 31 String stringValue = value.toString(); 32 33 if (preference instanceof ListPreference) { 34 35 ListPreference listPreference = (ListPreference) preference; 36 int index = listPreference.findIndexOfValue(stringValue); 37 38 preference.setSummary( 39 index >= 0 40 ? listPreference.getEntries()[index] 41 : null); 42 43 } else if (preference instanceof RingtonePreference) { 44 45 if (TextUtils.isEmpty(stringValue)) { 46 47 preference.setSummary(R.string.pref_ringtone_silent); 48 49 } else { 50 Ringtone ringtone = RingtoneManager.getRingtone( 51 preference.getContext(), Uri.parse(stringValue)); 52 53 if (ringtone == null) { 54 55 preference.setSummary(null); 56 } else { 57 58 String name = ringtone.getTitle(preference.getContext()); 59 preference.setSummary(name); 60 } 61 } 62 63 } else { 64 65 preference.setSummary(stringValue); 66 } 67 return true; 68 } 69 }; 70 71 private static boolean isXLargeTablet(Context context) { 72 return (context.getResources().getConfiguration().screenLayout 73 & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_XLARGE; 74 } 75 preference.setOnPreferenceChangeListener(sBindPreferenceSummaryToValueListener); 76 77 sBindPreferenceSummaryToValueListener.onPreferenceChange(preference, 78 PreferenceManager 79 .getDefaultSharedPreferences(preference.getContext()) 80 .getString(preference.getKey(), "")); 81 } 82 83 @Override 84 protected void onCreate(Bundle savedInstanceState) { 85 super.onCreate(savedInstanceState); 86 setupActionBar(); 87 } 88 89 90 private void setupActionBar() { 91 ActionBar actionBar = getSupportActionBar(); 92 if (actionBar != null) { 93 94 actionBar.setDisplayHomeAsUpEnabled(true); 95 } 96 } 97 98 99 @Override 100 public boolean onIsMultiPane() { 101 return isXLargeTablet(this); 102 } 103 104 105 @Override 106 @TargetApi(Build.VERSION_CODES.HONEYCOMB) 107 public void onBuildHeaders(List<Header> target) { 108 loadHeadersFromResource(R.xml.pref_headers, target); 109 } 110 111 112 protected boolean isValidFragment(String fragmentName) { 113 return PreferenceFragment.class.getName().equals(fragmentName) 114 || GeneralPreferenceFragment.class.getName().equals(fragmentName) 115 || DataSyncPreferenceFragment.class.getName().equals(fragmentName) 116 || NotificationPreferenceFragment.class.getName().equals(fragmentName); 117 } 118 119 120 @TargetApi(Build.VERSION_CODES.HONEYCOMB) 121 public static class GeneralPreferenceFragment extends PreferenceFragment { 122 @Override 123 public void onCreate(Bundle savedInstanceState) { 124 super.onCreate(savedInstanceState); 125 addPreferencesFromResource(R.xml.pref_general); 126 setHasOptionsMenu(true); 127 128 bindPreferenceSummaryToValue(findPreference("example_text")); 129 bindPreferenceSummaryToValue(findPreference("example_list")); 130 } 131 132 @Override 133 public boolean onOptionsItemSelected(MenuItem item) { 134 int id = item.getItemId(); 135 if (id == android.R.id.home) { 136 startActivity(new Intent(getActivity(), Mypage.class)); 137 return true; 138 } 139 return super.onOptionsItemSelected(item); 140 } 141 } 142 143 144 @TargetApi(Build.VERSION_CODES.HONEYCOMB) 145 public static class NotificationPreferenceFragment extends PreferenceFragment { 146 @Override 147 public void onCreate(Bundle savedInstanceState) { 148 super.onCreate(savedInstanceState); 149 addPreferencesFromResource(R.xml.pref_notification); 150 setHasOptionsMenu(true); 151 152 bindPreferenceSummaryToValue(findPreference("notifications_new_message_ringtone")); 153 } 154 155 @Override 156 public boolean onOptionsItemSelected(MenuItem item) { 157 int id = item.getItemId(); 158 if (id == android.R.id.home) { 159 startActivity(new Intent(getActivity(), Mypage.class)); 160 return true; 161 } 162 return super.onOptionsItemSelected(item); 163 } 164 } 165 166 167 @TargetApi(Build.VERSION_CODES.HONEYCOMB) 168 public static class DataSyncPreferenceFragment extends PreferenceFragment { 169 @Override 170 public void onCreate(Bundle savedInstanceState) { 171 super.onCreate(savedInstanceState); 172 addPreferencesFromResource(R.xml.pref_data_sync); 173 setHasOptionsMenu(true); 174 175 bindPreferenceSummaryToValue(findPreference("sync_frequency")); 176 } 177 178 @Override 179 public boolean onOptionsItemSelected(MenuItem item) { 180 int id = item.getItemId(); 181 if (id == android.R.id.home) { 182 startActivity(new Intent(getActivity(), Mypage.class)); 183 return true; 184 } 185 return super.onOptionsItemSelected(item); 186 } 187 } 188} 189
Mypage.javaの
public class Mypage extends AppCompatPreferenceActivity {
を
public class Mypage extends Fragment {
に変換もしてみたのですが、そうすると、
Mypage.javaの方で多数エラーが出てしまいます。
↓こちらです
エラー: シンボルを見つけられません シンボル: クラス Header 場所: クラス Mypage エラー: MypageのonCreate(Bundle)はFragmentのonCreate(Bundle)をオーバーライドできません (public)より弱いアクセス権限を割り当てようとしました エラー: シンボルを見つけられません シンボル: メソッド getSupportActionBar() 場所: クラス Mypage エラー: メソッドはスーパータイプのメソッドをオーバーライドまたは実装しません エラー: 不適合な型: MypageをContextに変換できません: エラー: メソッドはスーパータイプのメソッドをオーバーライドまたは実装しません
わかる方、よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/06/21 08:17
2018/06/21 08:26