2010-11-25 6 views
0

グリーティング、Android:各アクティビティに別々のJavaファイルがある可能性がありますか?

私は現在Androidアプリケーションを開発していますが、ボタンのクリックイベントなどを各アクティビティの別々のファイルで処理できるようにしたいと考えています。これは可能ですか?現時点では、いくつかのアクティビティウィンドウのすべてのイベントを処理する非常に大きなファイルが1つあります。

アドバイスをいただければ幸いです。 OnClickListenerインターフェースがあるイベント処理のために事前に

おかげで、

答えて

1

、あなたは(のonCreateで独自の実装を作成し、ボタンを取得する唯一の場所でそれを使用し、例えばことができます):

@Override 
public void onCreate(Bundle savedInstance) { 
    ... 
    Button btn = (Button) findViewById(R.id.ok_button); 
    btn.setOnClickListener(new onClickListener() { 

    @Override 
    public void onClick() { 
     // the code 
    } 

} 

したがって、別のファイルを作成する必要はありません。

+0

ありがとうございます。それで、アプリケーション全体のすべてのイベントを1つのファイルで処理する必要がありますか?その標準的な練習ですか? – Eamorr

+0

アクティビティ全体で発生するイベントは、そのアクティビティ内で処理する必要があります。アクティビティはあなたのUIコントローラであるはずです。しかし、あなたがonClickListenerに多くのビジネスロジックを持っているなら、それを別の場所クラスに移動して、あなたのonClickListener()からこのコードを呼び出すことを考慮する必要があります。 –

+0

こんにちはウラジミール、それは今意味がある。返信いただきありがとうございます。 – Eamorr

1

あなたがしようとしていることは、少なくともきれいな方法では不可能です。

クリックを処理するには、1つのインタフェース(View.OnCLickListener)を実装する必要があります。別のビューでクリックすると、異なるタイプのレスポンスが生成されます(つまり、1つのボタンがポップアップを開き、別のボタンがアクティビティを開始する可能性があります)。

はい、クリックされたビューのIDを確認して、それに基づいて何をすべきかを決めることができますが、これは醜いように見えます!

コードの再利用を実現するために、通常、すべてを内部クラスに実装します。このようにして、それぞれの場合に何をすべきかを1回だけ選択できます。

非常に一般的な操作を行っている場合は、別のファイルで再利用できるので、他のクラスで再利用できます。

+0

さて、それは私のために物事をクリアします。私はちょうど私が行く方法とユーザーの内部クラスを試していくつもりです。 – Eamorr

0

私は、あなたがもっと先に進む前に、オブジェクトオリエンテーションの基本に慣れるために少し時間を費やすべきだと思います。あなたは基本的な理解がなければ、おそらくあなたが基本的な理解を持っていれば、必要ないでしょう。初心者のJavaブックを手に入れたり、オンラインでチュートリアルをしたり、2つのオンラインチュートリアルをお試しください。

そして、あなたが私のアドバイスを受けていないことを願っています。私はあなたの質問が基本を知らないことを伝えるだけです。

は今、あなたの質問に答えるために...あなたは、すべての共有イベント処理ロジックは、(共有コードがすべて活動が使用するコードのみを意味する)を実装単一のクラスを作成します。アクティビティクラスをIS EventHandlingClassまたはHAS A EventHandlingClassにすることで、各アクティビティクラスのこの共有イベントハンドラを使用します。 ISまたはHAS A実際にはどういうことかを知るために、実際には、あなたはオブジェクト指向言語の基本的な知識を持っています。

Good Luck!

Rodney

関連する問題