[英]Communication between Activity and Fragment for sending values
嗨,大家好,在下面看到的程序中,我应该执行以下一系列步骤:
1)Fragment1(Rapportini)我去参加Activity2(Articoli)
2)选择一个元素并返回Fragment1(Rapportini),将值作为意图传递
3)OnActivityResult方法读取意图并将其添加到arraylist
我的问题是没有调用OnActivityResult方法! 为什么会发生这种情况,我该如何解决?
活动2(Articoli)-代码:
Articolo a = (Articolo) ArticoliRicerca.get(position);
Intent tabRapportini = new Intent(ArticoliActivity.this, RapportiniActivity.class);
tabRapportini.putExtra("articoloselezionato", a);
setResult(ArticoliActivity.RESULT_OK,tabRapportini);
System.out.println("\n Hai fatto tap \n");
finish();
片段结果(Rapportini Fragment):
public class RapportiniActivity extends Fragment {
private View view;
private ArrayList ArticoloSelezionati = new ArrayList();
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
view = (View) inflater.inflate(R.layout.activity_rapportini, container, false);
return view;
}
@Override
public void onViewCreated(final View view, Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final Button btnGeneraRapportino = (Button) view.findViewById(R.id.buttongenera_rapportino);
final Button btnAggiungiArticoli = (Button) view.findViewById(R.id.button_inserimento_articoli);
final EditText txtNote = (EditText) view.findViewById(R.id.EditText_Note);
btnAggiungiArticoli.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent articoliintent = new Intent(RapportiniActivity.this.getActivity(), ArticoliActivity.class);
startActivity(articoliintent);
}
});
//Configuro la funzione Listener sul login button
btnGeneraRapportino.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//Prima di procedere con la generazione del rapportino è necessario controllare che le note siano inserite
if (txtNote.getText().toString().length() > 0) {
Rapportino r = new Rapportino();
String ImageBase64 = r.GeneraRapportinoPrivato(txtNote.getText().toString());
try {
//byte[] decodedString = Base64.decode(ImageBase64, Base64.DEFAULT);
//System.out.println("\n Decode String: "+decodedString);
//Bitmap bp = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
//img.setImageBitmap(bp);
} catch (Exception ex) {
System.out.print("Errore: " + ex);
}
} else {
Support.Notification(RapportiniActivity.this.getActivity(), "Attenzione", "Non hai inserito le note");
}
}
});
}
/* Tipologie di result code:
1) Articolo
*/
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == 1) {
System.out.println("\n Hai selezionato un articolo");
Articolo a = (Articolo) data.getSerializableExtra("articoloselezionato");
ArticoloSelezionati.add(a);
}
System.out.println("\n Articolo selezionati: " + ArticoloSelezionati.size());
}
}
在您的代码中:
Intent articoliintent = new Intent(RapportiniActivity.this.getActivity(), ArticoliActivity.class);
startActivity(articoliintent);
使用startActivityForResult
这很简单。 只需确保包含RapportiniActivity
(是一个片段)的活动在其中覆盖了onActivityResult
,如下所示:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
和您的代码应该工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.