gpt4 book ai didi

java - getIntent 返回 null

转载 作者:行者123 更新时间:2023-11-30 01:13:38 26 4
gpt4 key购买 nike

在 android 中,当我尝试使用 getIntent(); android中的方法,它返回null,这导致应用程序崩溃。这是我的代码:

public class MainActivity extends AppCompatActivity {

public final static String EXTRA_MESSAGE = "com.mycompany.myfirstapp.MESSAGE";

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

public void sendMessage(View view) {
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText textbox = (EditText) findViewById(R.id.edit_message);
String message = textbox.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message.toString());
startActivity(intent);
}
}

第一个 Activity 调用第二个:

public class DisplayMessageActivity extends AppCompatActivity {

Intent intent = getIntent();


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

String message = "";

if (intent == null) {
Log.d("Intent", "Intent is null :(");
}

try {
message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
} catch (Exception e) {
Log.d("Message", "Message is null");
}


TextView textView = new TextView(this);
textView.setText(message);
textView.setTextSize(40);

RelativeLayout layout = (RelativeLayout) findViewById(R.id.content);
layout.addView(textView);
}
}

我不明白为什么它会返回 null,因为我自己调用它的目的是……不为 null。

编辑:我还尝试使用常量之外的其他内容作为键,例如“消息”,而不是 EXTRA_MESSAGE,它会导致相同的结果。

最佳答案

null 有两个原因。1) 如果您没有在 andorid 的 manifest.xml 文件中声明 Activity 。2) 你必须在 oncreate() 方法中使用 getIntent() ,它的代码在这里:-

public class DisplayMessageActivity extends AppCompatActivity {

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

Intent intent = getIntent();


String message = "";

if (intent == null) {
Log.d("Intent", "Intent is null :(");
}

try {
message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
} catch (Exception e) {
Log.d("Message", "Message is null");
}


TextView textView = new TextView(this);
textView.setText(message);
textView.setTextSize(40);

RelativeLayout layout = (RelativeLayout) findViewById(R.id.content);
layout.addView(textView);
}
}

关于java - getIntent 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38171349/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com