Java 搞不清楚意图构造器出了什么问题

Java 搞不清楚意图构造器出了什么问题,java,android,android-intent,Java,Android,Android Intent,我正在尝试创建一个按钮来打开第二个活动。我已经看过了在Intents上可以找到的教程,我认为我正确地遵循了它们,但显然我没有 NewScreenActivity是一项完全空白的活动。意图构造函数有什么问题,我如何才能正确地执行它 //NewScreenActivity in same package package com.example.intri.firstexample; import android.content.Intent; import android.support.v7.a

我正在尝试创建一个按钮来打开第二个活动。我已经看过了在Intents上可以找到的教程,我认为我正确地遵循了它们,但显然我没有

NewScreenActivity是一项完全空白的活动。意图构造函数有什么问题,我如何才能正确地执行它

//NewScreenActivity in same package
package com.example.intri.firstexample;

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

public class MainActivity extends AppCompatActivity {

    TextView userText;
    Button buttonToNewScreen;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        userText = (TextView) findViewById(R.id.userText);
        buttonToNewScreen = (Button) findViewById(R.id.buttonToNewScreen);
        userText.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String input = userText.getText().toString();
                Intent toNewScreen = new Intent(this, NewScreenActivity.class);

            }
        });
    }
}
谢谢

在本例中,您不能在new Intent()中使用“this”,因为“this”指的是新的OnClickerListener匿名类。您应该调用getApplicationContext()之类的函数,而不是“this”。如果要引用活动,请编写一个名为openNewActivity()的方法(或类似的方法),然后从那里开始


在本例中,您不能在new Intent()中使用“this”,因为“this”指的是新的OnClickerListener匿名类。您应该调用getApplicationContext()之类的函数,而不是“this”。如果要引用活动,请编写一个名为openNewActivity()的方法(或类似的方法)并从那里开始。

您的代码不应编译,正确的代码应如下所示:

Intent intent = new Intent(MainActivity.this, NewScreenActivity.class);
startActivity(intent);

您的空白活动问题可能是完全不同的问题。如果要传递数据,请使用
intent.putExtra
函数系列。

您的代码不应编译,正确的代码应如下所示:

Intent intent = new Intent(MainActivity.this, NewScreenActivity.class);
startActivity(intent);

您的空白活动问题可能是完全不同的问题。如果您想通过intent传递数据,请使用
intent.putExtra
函数系列。

当然这是空白活动,因为您没有通过intent发送任何数据。你的意图只是开启了另一个活动。你应该使用额外的

String input = userText.getText().toString();
Intent toNewScreen = new Intent(MainActivity.this, NewScreenActivity.class);
toNewScreen.putExtra("data", input);
startActivity(toNewScreen);

当然,它是空白活动,因为您没有通过Intent发送任何数据。你的意图只是开启了另一个活动。你应该使用额外的

String input = userText.getText().toString();
Intent toNewScreen = new Intent(MainActivity.this, NewScreenActivity.class);
toNewScreen.putExtra("data", input);
startActivity(toNewScreen);

在您的OnCLickListener中使用以下命令以获取意图。 您意图中的“this”指的是clickListener。因此,您必须指定活动名称,然后才能启动该活动

Intent-toNewScreen=新意图(MainActivity.this、NewScreenActivity.class);

startActivity(toNewScreen)在您的OnCLickListener中使用以下内容以获取意图。 您意图中的“this”指的是clickListener。因此,您必须指定活动名称,然后才能启动该活动

Intent-toNewScreen=新意图(MainActivity.this、NewScreenActivity.class);

startActivity(toNewScreen)
总的来说,
main活动。这是一个比
getApplicationContext()
更好的建议。只有在有特定原因时才使用
应用程序
上下文。总的来说,
main活动。与
getApplicationContext()
相比,这是一个更好的建议。只有在有特定原因时才使用
应用程序
上下文。
onClick()
方法中引用了您在此处创建的匿名
OnClickListener
setOnClickListener(new View.OnClickListener(){/*..*/})。这就是为什么会出现错误。
onClick()中的
this
方法引用了您在此处创建的匿名
OnClickListener
setOnClickListener(new View.OnClickListener(){/*..*/})。这就是为什么你会犯错误。