我尝试将数据添加到回收器视图适配器,但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);
}
答案 0 :(得分:2)
您有两个错误:
您错误地尝试处理从活动返回的数据。有几个关于如何执行此操作的教程。您需要使用startActivityForResult()
并覆盖onActivityResult()
回调。有关详细信息,请参阅Getting a Result from an Activity。
您要设置"subject"
两次,一次使用stringSubject
,然后再次设置stringDate
。
顺便说一句,"字符串"在您的变量名称中是多余的和不必要的输入。我建议您使用更简单的名称,例如date
和subject
。此外,没有理由在toString()
对象上调用String
,因为它已经是正确的类型。