アプリケーションから設定画面を表示する必要があります。私はこれを実装することができました。これはIce-CreamSandwich以降のデバイスでは機能しますが、GingebreadやFroyoなどの古いデバイスでは機能しません。古いデバイスをサポートするための互換性ライブラリとしてActionBarSherlockを使用しています。
Activity
設定画面を含むのコードは次のとおりです。
public class Settings extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new Preferences())
.commit();
}
}
これは、設定画面を呼び出す私のアクティビティのサンプルコードです。
public class Trend extends SherlockActivity {
@Override
public boolean onOptionsItemSelected(MenuItem itmMenuitem) {
if (itmMenuitem.getItemId() == R.id.search) {
startActivity(new Intent(getBaseContext(), Settings.class));
return true;
}
}
}
ユーザーが古いデバイスで設定画面を開こうとすると、次のような例外が発生します。
java.lang.NoSuchMethodError: com.mridang.stupidapp.Settings.getFragmentManager
at com.mridang.stupidapp.Settings.onCreate(Settings.java:15)
古いデバイス、つまりAPI 8で動作するように設定画面を変更するにはどうすればよいですか?ありがとう。