0

割り当てているボタンがありますOnClickListener。その結果、新たなインテントを始めたいと思います。そのためには、アクティビティを参照する必要があります。これを行う方法を私が知っているのは、次のコードのようなものだけです。これは、ボタンのクリックからインテントを開始するための最良の方法ですか?また、これにはどのようなメモリの影響がありますか?

public class SomeActivity extends FragmentActivity  {

    private final FragmentActivity self=this;


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

        setContentView(R.layout.activity_main);
        findViewById(R.id.startButton).setOnClickListener(new View.OnClickListener(){
            public void onClick(View v) {
                Intent intent=new Intent(self,someClass.class);
                startActivity(intent);
            }
        });

}
4

2 に答える 2

1

これを行うための最良の方法はActtivityName.this、次のように単純に渡すことです。

public class SomeActivity extends FragmentActivity  {

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

        setContentView(R.layout.activity_main);
        findViewById(R.id.startButton).setOnClickListener(new View.OnClickListener(){
            public void onClick(View v) {
                Intent intent=new Intent(SomeActivity.this,someClass.class);
                startActivity(intent);
            }
        });

}
于 2012-11-22T00:19:00.623 に答える
0

これを行う別の方法は、次のように呼び出すことです。
findViewById(R.id.startButton).setOnClickListener(this);
次に、Activity実装を作成し、この方法でView.OnClickListenerメソッドを実装します。onClick(View v)

public void onClick(View v) {
    switch(v.getId()) {
        case R.id.startButton:
            Intent intent=new Intent(self,someClass.class);
            startActivity(intent);
            break;

        // Handle click on other views

    }
}

リスナーのインスタンス化を防ぎ、メモリ消費に少し適しているはずです。

于 2012-11-21T22:17:37.300 に答える