从onClick类启动活动

时间:2012-11-21 22:02:04

标签: android android-intent

我有一个按钮,我正在分配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);
            }
        });

}

2 个答案:

答案 0 :(得分: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);
            }
        });

}

答案 1 :(得分: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

    }
}

它阻止实例化一个监听器,并且对于内存消耗应该更好一些。