Не входящая в класс ошибка Android Studio
Я новичок в разработке 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. Поэтому я хотел бы спросить, какие изменения мне необходимо внести в свой код, чтобы он работал.
Ответы
Ответ 1
Это должно быть
Intent myIntent = new Intent(this, Katra_home.class);
startActivity(myIntent);
Вы должны использовать существующий контекст активности для запуска новой активности, новая активность еще не создана, и вы не можете использовать ее контекст или методы вызова на ней.
не возникает ошибка класса размещения из-за использования ключевого слова this
. this
- ссылка на текущий объект - объект, чей метод или конструктор вызывается. С помощью this
вы можете ссылаться только на любой член текущего объекта из метода экземпляра или конструктора.
Katra_home.this
является недопустимой конструкцией
Ответ 2
Intent myIntent = new Intent(MainActivity.this, Katra_home.class);
startActivity(myIntent);
Это должно быть совершенным:)
Ответ 3
замените код в методе onClick() следующим образом:
Intent myIntent = new Intent(this, Katra_home.class);
startActivity(myIntent);
Ответ 4
вы вызываете контекст не существующей активности... поэтому просто замените свой код на onClick (View v) как
Intent intent = new Intent (это, Katra_home.class);
startActivity (намерение);
это определенно сработает....