0

リサイクラー ビュー アダプターにデータを追加しようとしていますが、getStringExtra は常に null です。私は最も経験豊富なプログラマーではないので、自分がしていることに重大な欠陥を作っている可能性があります。

最初に呼び出されるもの:

public void addItem(View view) {
        Intent otherOne = new Intent(this, Main2Activity.class);
        startActivity(otherOne);

        Intent intent = getIntent();
        String subjectString = intent.getStringExtra("subject");
        String detailsString = intent.getStringExtra("details");
        String dateString =   intent.getStringExtra("date");



        Data dataToAdd = new Data(
                subjectString,
                detailsString,
                dateString);
        mData.add(dataToAdd);
        Log.d(TAG, dateString + "might have workedlol");
        // Update adapter.
        mAdapter.addItem(mData.size()-1, dataToAdd);
    }

MainActivity2 で呼び出されるもの:

public void setData(View view){


        inputSubject = (EditText) (findViewById(R.id.editTextSubject));
        String stringSubject = inputSubject.getText().toString();

        inputDetails = (EditText) findViewById(R.id.editTextDetails);
        String stringDetails = inputDetails.getText().toString();

        inputDate = (EditText) findViewById(R.id.editTextDate);
        String stringDate = inputDate.getText().toString();

        Intent intent = new Intent(this, PlannerActivity.class);
        intent.putExtra("subject", stringSubject.toString());
        Log.d(TAG, stringDate + "might have worked");
        intent.putExtra("details", stringDetails.toString());
        intent.putExtra("subject", stringDate.toString());
        startActivity(intent);
    }
4

1 に答える 1

2

2 つのエラーがあります。

  1. アクティビティから返されたデータを誤って処理しようとしています。これを行う方法については、いくつかのチュートリアルがあります。startActivityForResult()コールバックを使用してオーバーライドする必要がありonActivityResult()ます。詳細については、アクティビティからの結果の取得を参照してください。

  2. "subject"を で 1 回、stringSubject次にで 2 回設定していstringDateます。

余談ですが、変数名の「文字列」という単語は冗長で不要な入力です。dateやのような単純な名前を使用することをお勧めしますsubject。また、オブジェクトはすでに正しい型であるためtoString()、オブジェクトを呼び出す理由はありません。String

于 2016-02-02T21:01:13.703 に答える