2

作成中のアプリがあり、ユーザーがアプリの設定を選択できる環境設定アクティビティがあります。

私が助けを必要としているのは、ユーザーが設定アクティビティにアクセスする方法を選択することです。一部のチュートリアルでは、実際には、ユーザーがそのアクティビティにアクセスできるようにする「設定」などのラベルが付けられたメイン アクティビティにボタンがあります。

他の人(私が現在持っている方法)は、ユーザーが電話のメニューボタンをクリックすることに依存しています。一部の携帯電話にはメニュー ボタンがなく、Android チームは物理的なナビゲーション ボタンの要件を取り除こうとしていると読みました。

だから私は少し混乱しています、このトピックに関する一般的なコンセンサスは何ですか? ありがとうございました。

編集:これが私の現在のメニュー作成コードです

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        menu.add(Menu.NONE, 0, 0, "Settings");
        return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case 0:
            startActivity(new Intent(this, Preferences.class));
            return true;
        }
        return false;
    }
4

4 に答える 4

4

「メニューボタン」アプローチを使用します。通常、英語では、このボタンは環境設定を管理しますが、「環境設定」ではなく「設定」と呼ぶ必要があります。愚かな、私は知っています。

メニューボタンのない電話機について:

Android 4.0 以降を実行していない唯一の携帯電話です。プロジェクト ビルドでターゲットの Android 3.0 以降が使用され、メニュー項目が適切に作成されている限り (方法を知る必要がある場合はスニペットを提供します)、Android はハードウェア メニュー ボタンがないことを検出し、「オーバーフロー」を追加します。メニューをアクション バーに移動します。

編集:スニペットは次のとおりです。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuItem buttonSettings = menu.add("Settings"); // This is a hardcoded string. When you get around to it, switch it to a localized String resource.
    buttonSettings.setIcon(R.drawable.ic_settings); // I have a custom icon for this. You can use the one in android.R.drawable, but I don't know its name right now.
    buttonSettings.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER); // This forces it to go in the overflow menu, which is preferred.
    buttonSettings.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {

        public boolean onMenuItemClick(MenuItem item) {
            Intent settingsIntent = new Intent(YourActivity.this, Preferences.class); // Change YourActivity to.. well, your activity. Change Preferences to the name of your Settings activity.
            YourActivity.this.startActivity(settingsIntent);
            return false; // I honestly don't know why this should return false, but every example I've seen has it do so. So I'd leave it in.
        }
    });
return true;
}

オーバーフロー メニューは 3 つの点のように見え、アクション バーの「その他...」オプションのようなものです。Android デザイン ガイドラインでは、[設定] オプションを常にオーバーフロー メニューに配置する必要があります。

それが解決することを願っています。それ以外は、お気軽にお尋ねください。

于 2012-07-28T16:55:26.003 に答える
1

みんなの助け、特にスティーブンの助けに感謝します、私は次のことを学びました:

  • Android 3.0以降の場合、設定アクティビティにアクセスする効率的な方法は、アクションバーを実装することです。
  • アクションバーは、テーマをTheme.Holoに変更することで追加できます。これは、3.0以降のプラットフォームで使用できます。
  • 2.2を搭載した電話を持っているので、マニフェストファイルで設定したときにHoloテーマが見つかりませんでした。これは、ビルドターゲットが2.2だったためです。
  • テーマを機能させるために、最初はminSdkVersionを11に変更しましたが、それは携帯電話でテストできず、Androidのバージョンが3.0未満のユーザーはアプリを使用できないことを意味します。したかった
  • 実際の方法は、[プロジェクト]>[設定]>[Android]に移動し、ビルドターゲットを最新バージョンのAndroidに設定することです(このように、OSバージョンが高い携帯電話は、新しいテーマ関連の変更の恩恵を受けることができますが、古いバージョンは影響を受けません)
  • より高いビルドターゲットを設定するときに注意すべきことの1つは、使用するクラスの互換性です。一部のクラスは、Androidの上位バージョンでのみ機能する可能性があるため、下位バージョンでアプリがクラッシュする可能性があります。
于 2012-07-28T21:05:34.250 に答える
0

両方を行うことをお勧めします(これが私が行うことです)。画面に設定が virtual button表示され、それをクリックすると設定画面がポップアップします。physical buttonまた、をクリックすると、設定画面がポップアップするオプションがあります。

于 2012-07-28T17:06:00.017 に答える
0

私より頭がいい (そして審美的に洗練されている) 人が、Android デザイン ガイドで設定について説明しています。

私の一般的な UI 設計の原則は次のとおりです。

  1. いつも行うことは、画面上の (コンテンツ領域または ActionBar アクション) コントロールを使用してアクセスする必要があります。
  2. 1 日に 1 回行うことは、メニューのトップ レベルからアクセスする必要があります (またはホーム画面のオンスクリーンのみ)。
  3. めったに行わないこと (ユーザー設定の変更など) は、必要に応じてメニュー階層の奥深くに埋め込むことができます。:-)

実際には、通常、設定はホーム アクティビティの最初のオーバーフロー レベルにあると考えています。

于 2012-07-28T18:09:29.293 に答える