私はgetIntent()を使用しようとするとアンドロイドにあります。メソッドをアンドロイドで使用すると、nullが返され、アプリケーションがクラッシュする原因となります。ここに私のコードです:getIntent 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);
}
}
この最初のアクティビティの呼び出し秒:それはnullを返し、なぜ私は...ない意思を使って自分自身を呼び出しているので、私は、理解していない
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);
}
}
ヌル。
EDIT:私はまた、EXTRA_MESSAGEではなく "message"のように、キーの定数以外のものを使用しようとしましたが、同じ結果につながります。
移動 'テントの意図= getIntent();' '内部onCreate'方法 –
うーん...ありがとう。これは私がC#でやっていたことですが、ここではうまくいかないことはわかりませんでした。どうもありがとうございました。 –
コンストラクタが呼び出される前に、オブジェクトが作成されたときに初期化時に発生するようなメソッドの外部のステートメントがあるため、このメソッドは機能しません。その時点で、インテントはオブジェクトにまだ渡されていません。実際には、単純な値(1,2、 "hello"など)の場合のようなイニシャライザを使用するか、新しいオブジェクトを作成する必要があります。関数を呼び出すべきではありません。 –