0

ActivityButtons に新しいアクティビティを使用しています。10 種類ほどのアクティビティがあり、そのすべてが同じフッターを使用しています。フッターには、ボタンと多数のクリック イベントがあります。フッター ボタンのすべてのリスナー イベントをコピーして、他のいくつかのアクティビティに貼り付けてテストしました。それは機能しますが、必要なときに一度だけ変更できるように、それらをどこかにまとめておく方法を見つける必要があります。

すべての一般的なメソッドを静的にすることで別のユーティリティ クラスに保持しようとしましたが、用途が限られています。参照と非静的メソッドに問題があります。

私の研究では、ViewFlipper について読みました。すべてに単一の MainActivity を使用し、レイアウトを切り替えるには ViewFlipper を使用したほうがよいでしょうか。唯一のアクティビティが常にアクティブになるため、これによりリソースの問題が発生する可能性があることを読みました。

この問題に対する提案はありますか?

前もって感謝します。

4

2 に答える 2

0

ParentActivityメソッドを処理するを作成してからonClick、他のメソッドに固有の処理を実行させることができます。ActivitiesextendParentActivity

もう1つのアプローチは、を使用することFragmentsです。を処理するフラグメントを1つ作成しますFooter。他のフラグメントは、動作が期待される作業に基づいて異なります。

于 2013-01-21T14:30:37.693 に答える
0

考慮すべき点がいくつかあります。

まず、Android ではフッターはやや問題のあるデザイン パターンです。デバイスの画面領域のすぐ下にソフト ボタンがあるため、ユーザーがフッターを狙っているときにシステム ボタンを誤ってクリックしてしまうことは非常に簡単です。フッターの使用に固執している場合は、これを軽減するためにフッターと画面の下端の間に十分な余白を残すことをお勧めします.

レイアウトとクリック リスナーの処理方法には、いくつかのオプションがあります。フッターを独自のフラグメントにして、それを必要とする各アクティビティに追加するだけです。これは間違いなくより難しいアプローチですが、挑戦するつもりなら、Fragments を使った良い学習体験を提供します。

もう 1 つのオプションは、すべてのフッター クリック リスナーを独自のアクティビティ内に配置し、それを他のすべてのアクティビティで拡張することです。このようなもの:

public class FooterActivity extends Activity{
    Button btn1
    //...
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.id.yourLayout);
        btn1 = (Button)findViewById(R.id.btn1);
        btn1.setOnClickListener(yourClickListener);
        //...
    }
}

次に、通常のアクティビティで次のように変更extends Activityしますextends FooterActivity

于 2013-01-21T14:38:35.267 に答える