1. ホーム
  2. アンドロイド

[解決済み】文字列データに対するputExtra()とgetExtra()の使用方法

2022-03-25 07:53:36

質問

の具体的な使い方を教えてください。 getExtra()putExtra() をインテントに使うのですか?実は、私はstrという文字列変数を持っていて、そこに文字列データを格納しています。さて、私はこのデータをあるアクティビティから別のアクティビティに送りたいのです。

  Intent i = new Intent(FirstScreen.this, SecondScreen.class);   
  String keyIdentifer  = null;
  i.putExtra(strName, keyIdentifer );

そして、SecondScreen.javaの中で

 public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.table);
        TextView userName = (TextView)findViewById(R.id.userName);
        Bundle bundle = getIntent().getExtras();

        if(bundle.getString("strName")!= null)
        {
            //TODO here get the string stored in the string variable and do 
            // setText() on userName 
        }

    }

非常に基本的な質問であることは承知していますが、残念ながらここで行き詰ってしまいました。 どうか助けてください。

ありがとうございます。

編集:ここで、ある画面から別の画面へ渡そうとしている文字列は動的なものです。 つまり、私はeditTextを持っていて、ユーザーが入力する文字列を取得しています。次に myEditText.getText().toString() . 入力された値を文字列として取得し、このデータを渡す必要があります。

解決方法は?

ファイルを置くにはどうしたらいいですか?

Intent i = new Intent(FirstScreen.this, SecondScreen.class);   
String strName = null;
i.putExtra("STRING_I_NEED", strName);

そして、その値を取り出すには、次のようにします。

String newString;
if (savedInstanceState == null) {
    Bundle extras = getIntent().getExtras();
    if(extras == null) {
        newString= null;
    } else {
        newString= extras.getString("STRING_I_NEED");
    }
} else {
    newString= (String) savedInstanceState.getSerializable("STRING_I_NEED");
}