1

アプリケーションから設定画面を表示する必要があります。私はこれを実装することができました。これは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で動作するように設定画面を変更するにはどうすればよいですか?ありがとう。

4

1 に答える 1

2

ActionBarSherlockもAndroidサポートライブラリも、設定フラグメントのサポートを提供していません。

設定ドキュメントで説明されているように、Perferenceアクティビティに戻る必要があります。

同じトピックについて説明している古い質問がいくつかあります。

于 2012-11-27T15:41:06.243 に答える