弄错了Intent构造函数的错误

时间:2016-07-17 21:00:49

标签: java android android-intent

我试图创建一个打开第二个活动的按钮。我已经查看了我在Intent上可以找到的教程,虽然我正确地遵循它们,但我显然不是。

NewScreenActivity是一项完全空白的活动。 Intent构造函数有什么问题,我该怎么做呢?

//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);

            }
        });
    }
}

由于

4 个答案:

答案 0 :(得分:2)

userText.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String input = userText.getText().toString();
                Intent toNewScreen = new Intent(this, NewScreenActivity.class);

            }
        });

你不能使用"这个"在这种情况下,在新的Intent()中,因为"这个"指的是新的OnClickerListener匿名类。而不是"这个"你应该调用类似getApplicationContext()的东西。如果你想引用你的活动,写一个名为openNewActivity()的方法(或类似的东西)并从那里开始。

答案 1 :(得分:1)

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

Intent.putExtra

您的空白活动问题可能完全不同。如果您想要使用intent传递数据,请使用String input = userText.getText().toString(); Intent toNewScreen = new Intent(MainActivity.this, NewScreenActivity.class); toNewScreen.putExtra("data", input); startActivity(toNewScreen); 函数族。

答案 2 :(得分:0)

在OnCLickListener中使用以下内容作为Intent。 你的Intent中的“this”指的是clickListener。所以你必须指定活动名称,然后你必须开始活动

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

让我知道这是否有效。

答案 3 :(得分:-1)

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

abort