我在Android开发中是新手,对Java没有深入的了解。我在一个问题上陷了很长时间。我正试图打开一个新的活动,点击按钮。但是我得到了一个错误:不是一个封闭类:katra_home。
这是mainactivity.java的代码public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn=(Button)findViewById(R.id.bhawan1);
btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent myIntent = new Intent(Katra_home.this, Katra_home.class);
Katra_home.this.startActivity(myIntent);
}
});
这是katra_home.java的代码
public class Katra_home extends BaseActivity {
protected static final float MAX_TEXT_SCALE_DELTA = 0.3f;
private ViewPager mPager;
private NavigationAdapter mPagerAdapter;
private SlidingTabLayout mSlidingTabLayout;
private int mFlexibleSpaceHeight;
private int mTabHeight;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.katra_home);
ActionBar ab = getSupportActionBar();
if (ab != null) {
ab.setDisplayHomeAsUpEnabled(true);
ab.setHomeButtonEnabled(true);
}
虽然我在StackOverflow上看到了很多答案,但是我不能理解它们,因为我是Android开发的新手。所以我想问一下,我需要在我的代码中做什么修改才能使它工作。
最佳答案:
应该是Intent myIntent = new Intent(this, Katra_home.class);
startActivity(myIntent);
您必须使用现有的活动上下文来启动新的活动,新活动尚未创建,并且您不能使用其上下文或对其调用方法。
由于使用了this关键字,因此不会引发封闭类错误。this是对当前对象的引用-正在调用其方法或构造函数的对象。使用this时,只能从实例方法或构造函数中引用当前对象的任何成员。
Katra_home.this是无效构造