Файл SecondActivity.class не связывается с объектом намерения, отображаемым красным цветом - PullRequest
0 голосов
/ 04 сентября 2018
package com.example.admin.assignment2;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    Button secbtn, google;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        secbtn = (Button) findViewById(R.id.secondbutton);
        google = (Button) findViewById(R.id.firstbutton);

        secbtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent newIntent = new Intent(getApplicationContext().SecondActivity.class);//not taking the SecondActivity.class showing in Red color
                startActivity(newIntent);
            }
        });
    }
}

при нажатии кнопки следует перейти ко второму действию, где «hello world» печатается с использованием textView. Просто нужна помощь в устранении ошибки.

Ответы [ 6 ]

0 голосов
/ 04 сентября 2018

Пожалуйста, попробуйте MainActivity вместо getApplicationContext ()

MainActivity.this относится к текущей активности (контексту), где getApplicationContext () относится к классу Application.

Попробуйте

Intent newIntent = new Intent (MainActivity.this, SecondActivity.class); startActivity (newIntent);

0 голосов
/ 04 сентября 2018

Intent - это класс, который используется для запуска действия. У него есть конструктор по умолчанию. один из них

 Intent(Context packageContext, Class<?> class)
 //Create an intent for a specific component.

Здесь в packageContext нам нужно передать имя текущей активности. Возможным параметром для packageContext является getApplicationContext () или ActivityName.this или, если это фрагмент, передайте getActivity (). Параметром для класса является NewActivityName.class

В вашем случае

Intent newIntent = new Intent(getApplicationContext(),SecondActivity.class);
startActivity(newIntent);

или

Intent newIntent = new Intent(MainActivity.this,SecondActivity.class);
startActivity(newIntent);
0 голосов
/ 04 сентября 2018

вместо "." вам нужно использовать "," Так что измените строку, где вы объявляете намерение как

Intent newIntent=new Intent(getApplicationContext(),SecondActivity.class);
0 голосов
/ 04 сентября 2018

Внутри цели замените (.) На (,) между контекстом и классом деятельности

Intent newIntent = new Intent(getApplicationContext(), SecondActivity.class);
0 голосов
/ 04 сентября 2018

Intent необходимо 2 аргумента, если вы хотите начать новое действие. Вы использовали точку . вместо запятой ,

Вместо:

    Intent newIntent = new Intent(getApplicationContext().SecondActivity.class);

Изменить на:

    Intent newIntent = new Intent(getApplicationContext(), SecondActivity.class);

Пожалуйста, проверьте это официальное руководство для этого.

0 голосов
/ 04 сентября 2018

Вместо точки вам нужно использовать запятую.

            Intent newIntent = new Intent(getApplicationContext(), SecondActivity.class);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...