4

Androidアクティビティでonclickリスナーを配置するのに最適な場所はどこですか? 私は2つの異なる方法を見てきました。1 つは onCreate メソッド内に配置する方法で、もう 1 つは onCreate メソッドの下と外側に配置する方法です。

新しい Android アプリを開始したばかりで、どこが最適なのか混乱しています。

両方の方法を以下に示します。

疑似コード例 1;

oncreate メソッド内の onclick メソッド

 MainActivity extends Activity{

 onCreate(){

 onClick listeners 

  } // end of onCreate method

 }  // end of MainActivity class

疑似コード例 2;

onclick を oncreate メソッドの下と外側に配置する

 MainActivity extends Activity{

 onCreate(){

 } // end of onCreate method

 onClick listeners

 }  // end of MainActivity class
4

5 に答える 5

5

どちらの方法も正しいです。コードをどのように編成するかは、実際には読みやすさのためです。にリスナーが多すぎるとonCreate()、後でコードを読むのが難しくなります。ただ、1枚だけ持っていてライナーが1枚の場合は、 に入れておくと良いonCreate()です。

于 2013-01-28T07:46:45.257 に答える
1

onClicklistenerxml ファイルを使用して配置することもできます。

すなわち

xml で次のタグを使用します。

android:onClick="startActivityB"

次にJavaファイルで

public void startActivityB(View v) {
        Intent intent = new Intent(ActivityA.this, ActivityB.class);
        startActivity(intent);
    }
于 2013-01-28T07:48:18.800 に答える
0

アクティビティのコードをどのように書きたいかはあなた次第です。必要に応じて onclick のすべてのコードを記述できますonCreate()が、処理するボタンまたはビューが多く、ボタンまたはビューごとに onClick を個別に記述する場合は、onCreate()非常に不器用に見えます。

この状況onClickListenerでは、すべてのボタンに共通のものを作成し、ロジックを個別に記述して、コードを美しく見せることができますonCreate()

これは私にとって最良の方法です:

   btn1.setOnClickListener(m_onClickListener);
/**
 * Common click listener
 */
OnClickListener m_onClickListener=new OnClickListener()
{
    @Override
    public void onClick(View p_v)
    {
        switch(p_v.getId())
        {
            case R.id.btn1:
                break;
                    }
            }
      };
于 2013-01-28T07:40:26.570 に答える
0

両方の方法を使用できます。同じ勢いの作品だと思います

2番目の方法を使用すると、コードの可読性が向上します

onClick注 : your_layout.xml を側に与える別のアプローチもあります。 しかし、今ではフラグメントがその役割を果たすようになったため、広く使用されていません ( REFER )。

于 2013-01-28T10:52:20.133 に答える
-3

常に 2 番目を優先する必要があります。作成時に配置すると、それも機能します。ただし、アクティビティが読み込まれるたびに実行されるのは望ましくありません。

ここに例があります

package com.damon86.toastExample;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.Toast;

public class ToastExample extends Activity implements OnClickListener {
    /** Called when the activity is first created. */

    // The text and button used on the display.
    EditText toastText = null;
    Button showToast = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Create a new Layout.
        LinearLayout rootLayout = new LinearLayout(getApplicationContext());

        // Create textfield
        toastText = new EditText(getApplicationContext());
        toastText.setText("Hello Toast!");

        // Create button and set OnClickListener
        showToast = new Button(getApplicationContext());
        showToast.setText("Show Toast");
        showToast.setOnClickListener(this);

        // Add components to the Layout.
        rootLayout.addView(toastText);
        rootLayout.addView(showToast);

        // Add the layout as the content view for the application.
        setContentView(rootLayout);
    }

    /**
     * Implemented method - onClick.
     * Show the user a piece of toast.
     */
    @Override
    public void onClick(View v) {

        // Create a piece of toast.
        Toast pieceToast = Toast.makeText(getApplicationContext(), toastText.getText(), Toast.LENGTH_SHORT);

        // Show the toast.
        pieceToast.show();
    }
}
于 2013-01-28T07:38:25.583 に答える