0

私のAndroidアプリケーションは最新のプラットフォームを対象としています。私はこのプラットフォームを初めて使用し、アクションバーで少し矛盾する情報を読みました。私がそれをナビゲーションに使っていた方法はでした。

menu.xml

<menu>
            <item android:id="@+id/action_sort_size"
                  android:icon="@android:drawable/ic_menu_sort_by_size"
                  android:title="@string/action_barabc"
                  android:onClick="abc" />
            <item android:id="@+id/action_sort_alpha"
....

私の活動では

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
public void abc(MenuItem item) {
//...
}

これは機能しますが、バックアップ/バックアップナビゲーションが正しく機能していません。無関係である可能性がありますが、それでも確認したいと思います。

しかし、 アイテムをオンにするここのような実装も見られます。

@Override
  public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.menuitem1:
      Toast.makeText(this, "Menu Item 1 selected", Toast.LENGTH_SHORT)
          .show();
      break;
    case R.id.menuitem2:
....
}

どちらがより良いアプローチですか?

4

1 に答える 1

0

私の意見では、より良いアプローチはスイッチアプローチです。理由はそれほど多くありませんが、以下にリストします。

  • コードは一元化されています。基本的に同じことを行うx個のメソッドはありません。コードを読みやすくします。それは「よりきれい」です。また、スイッチを使用してデフォルトのステートメントを取得します。これは、混乱してレイアウト内の要素専用のケースを作成するのを忘れた場合に役立ちます。本当にxmlを使用して一元化されたメソッドが必要な場合はonClick、同じメソッドを参照し、パラメーターのIDを確認する必要がありViewます。これは基本的にと同じonOptionsItemSelectedです。
  • これはAPIの一部です。Androidエンジニアは、開発者に使用させたくない場合は、APIの一部にすることはできなかったでしょう。はい、XMLは技術的にはAPIですが、XMLはロジックではなく、レイアウトとビジュアルに使用する必要があります。
  • 誰もがそれを使用します。私が見たすべてのチュートリアルとみんなのコードはこのメソッドを使用しています。今ではもっと慣習になっています。

それは主に個人的なものですが、それが慣習のように見え、誰もがそれを使用するのであれば、私はそれを守ります。特にあなたがチームの一員として働いているなら。そのような任意のもののための異なるコーディングスタイルは避けるべきです。

また、バックアップ/バックアップナビゲーションに関しては、同じコードを実装してそのナビゲーションタイプを取得する必要があるため、どちらの方法でも違いはありません。

于 2012-12-11T01:17:43.447 に答える