求教关于Android一个问题
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button_1:
((Activity)getContext()).finish();
break;
case R.id.button_2:
Intent intent=new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));
getContext().startActivity(intent);
break;
default:
}
}
求教
初学Android,活动实现View.onClickListener接口。当我想要重写onClick时,为什么想要调用finish()方法的时候需要将类型转换成Activity,而调用startActivity时不用转换。
还有就是Activity.this返回的是context吗,那和Activity本身有什么不同?
因为startActivity方法是Context的方法,Activity是Context的子类,而finish方法是Activity的方法。
在Acivity中类里面要调用本类的方法直接用就可以了不用Activity.this,但是在acitivty类中的内部类中想要调用Acivity的方法就要用Activity.this,Activity.this指定的Acitivity本身这个对象。建议楼主先把java的知识学扎实吧。
1楼回答的很好,context在学习android的过程成中很重要,建议砸扎实
Context 是 Activity 的父类,finish() 方法实在 Activity 类里面定义的,你现在拿到 Context 对象当然需要强制转换才能调用到 finish()