Android как получить больше данных с помощью onActivityResult
Я начинаю свою диалогическую деятельность с startActivityForResult(myIntent, 1);
забрать некоторые данные. protected void onActivityResult(int requestCode, int resultCode, Intent data)
может забрать только один тип данных?
Мне нужно взять строку (из EditText) и цвет ресурса (фон RadioButton) Могу ли я положить все два в returnIntent.putExtra("result",result);
?? Или я могу отправить только одну вещь?
Это код деятельности диалога
public class ActivityAddMateria extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_materia);
final Button exit_button = (Button) findViewById(R.id.exit_dialog_materia);
exit_button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//No input
Intent returnIntent = new Intent();
setResult(RESULT_CANCELED, returnIntent);
//Exit from Dialog
finish();
}
});
final Button accept_button = (Button) findViewById(R.id.add_materia);
accept_button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//Find EditText for take data
EditText nome_materia = (EditText)findViewById(R.id.nome_materia);
//Put result into variable result that is send back
String result = nome_materia.getText().toString();;
Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(RESULT_OK,returnIntent);
// Exit to Dialog
finish();
}
});
}
}
И это код Деятельности, который принимает входные данные:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == RESULT_OK){
String result = data.getStringExtra("result");
Materia materia;
materia = new Materia();
materia.setMateria(result);
materia.setColor(getResources().getColor(R.color.verde));
DB.getMaterie().add(materia);
LinearLayout mLayout = (LinearLayout) findViewById(R.id.contenitorematerie);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
params.setMargins(30, 0, 0, 0);
params.width = getResources().getDimensionPixelSize(R.dimen.text_view_width);
for(int i=0; i< DB.getMaterie().size(); i++)
{
textView = new TextView(this);
textView.setText(DB.getMaterie().get(i).getMateria());
textView.setBackgroundColor(DB.getMaterie().get(i).getColor());
textView.setGravity(Gravity.CENTER); //centro la scritta nella textview
textView.setLayoutParams(params); //assegno i parametri impostati sopra
mLayout.addView(textView);
}
}
if (resultCode == RESULT_CANCELED) {
//Nessuna materia inserita
}
}
}//onActivityResult
Мне нужно установить цвет динамически из результатов здесь materia.setMateria(result);
materia.setColor(getResources().getColor(R.color.verde));
1 ответ
Могу ли я положить все два в returnIntent.putExtra("результат", результат);?
Вы можете добавить два дополнения, используя разные ключи (например, "result"
а также "this is another extra"
).