我试图创建一个打开第二个活动的按钮。我已经查看了我在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);
}
});
}
}
由于
答案 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