0

インテントを使用して新しいアクティビティを開き、メッセージを渡す方法を学習していますが、新しいアクティビティが開始されたら、閉じる必要があります。私は何を間違えましたか?ヘルプが高く評価されています!ありがとう!

package test.intent;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {

Button btn1;
String message;
public final static String EXTRA_MESSAGE = "test.intent.MESSAGE";

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

    btn1 = (Button) findViewById(R.id.btn1);

    btn1.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub

            message = "Message via an intent";      

            Intent intent = new Intent(MainActivity.this, Activity1.class);
            intent.putExtra(EXTRA_MESSAGE, message);
            startActivity(intent);
        }
    });
}

}

メッセージを受信するアクティビティ:

package test.intent;

import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class Activity1 extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    TextView display = (TextView) findViewById(R.id.txtv1);

     setContentView(R.layout.activity1);

     Intent intent = getIntent();
     String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
    display.setText(message);
}
}
4

1 に答える 1

1

編集: TextView を取得する前に contentView を設定していないため、null ポインター例外が発生し、null が返されます。

setContentView(R.layout.activity1)
TextView display = (TextView) findViewById(R.id.txtv1);

このようにしてください

これの代わりにintent.getStringExtra(MainActivity.EXTRA_MESSAGE);

使用する

intent.getExtras().getString(MainActivity.EXTRA_MESSAGE);
于 2013-02-11T19:25:22.147 に答える