我有一个按钮,我正在分配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);
}
});
}
答案 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
}
}
它阻止实例化一个监听器,并且对于内存消耗应该更好一些。