Ich rufe Aktivitätsmethode von Fragment A. Es funktioniert gut. Aber wie kann ich eine Zeichenfolge, dann das Fragment B öffnen und Informationen von der Zeichenfolge erhalten?put string von Aufruf Aktivität Methode von innerhalb eines Fragments
Aktivität:
public void test(){
Send_torrent_url_androidTv_Fragment fragment4 = new Send_torrent_url_androidTv_Fragment();
fragment4.onDestroyView();
FragmentTransaction fragmentTransaction4 = getSupportFragmentManager().beginTransaction();
fragmentTransaction4.addToBackStack(null);
getFragmentManager().popBackStack();
fragmentTransaction4.remove(fragment4);
fragmentTransaction4.replace(R.id.frame,fragment4);
fragmentTransaction4.commit();
}
Fragment A:
// Listview on item click listener
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, final View view,
int position, long id) {
// getting values from selected ListItem
final String description = ((TextView) view.findViewById(R.id.mobile)).getText().toString();
final String id_stream = ((TextView) view.findViewById(R.id.id_streaming)).getText().toString();
// Starting single contact activity
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.AppCompatAlertDialogStyle);
builder.setTitle("Select");
// builder.setMessage("Lorem ipsum dolor ....");
builder.setItems(new CharSequence[]
{getString(R.string.play_video), getString(R.string.remove_video)},
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// The 'which' argument contains the index position
// of the selected item
switch (which) {
case 0:
Activity activity = getActivity();
if(activity instanceof Main2Activity){
Main2Activity myactivity = (Main2Activity) activity;
myactivity.test();
}
break;
case 1:
// Snack Bar
Snackbar bar = Snackbar.make(view, R.string.confirm_delete_playlist, Snackbar.LENGTH_LONG)
.setAction(R.string.yes, new View.OnClickListener() {
@Override
public void onClick(View v) {
// ---Control remote api---
new Thread() {
public void run() {
try {
HttpURLConnection.setFollowRedirects(false);
// note : you may also need
//HttpURLConnection.setInstanceFollowRedirects(false)
HttpURLConnection con = (HttpURLConnection) new URL("http://xxxx/remote/delete-.php?id="+id_stream).openConnection();
con.setRequestMethod("HEAD");
if(con.getResponseCode() == HttpURLConnection.HTTP_OK) {
//--refresh fragment
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.detach(playlist_torrent.this).attach(playlist_torrent.this).commit();
//Fin refresh fragment
// startActivity(getIntent());
// finish();
/* final Handler handler = new Handler();
Runnable refresh = new Runnable() {
@Override
public void run() {
new onPreExecute().execute();
handler.postDelayed(this, 60 * 1000);
}
};
handler.postDelayed(refresh, 60 * 1000); */
}
else{
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}.start();
// ----fin Control remote api----
}
});
bar.show();
break;
}
}
});
Bisher alles gut geht. Aber wo platziere jetzt ein String-Bündel?
Send_torrent_url_androidTv_Fragment fragment4 = new Send_torrent_url_androidTv_Fragment();
> Bundle bundle = new Bundle();
> bundle.putString("token", description);
> fragment4.setArguments(bundle);
fragment4.onDestroyView();
FragmentTransaction fragmentTransaction4 = getSupportFragmentManager().beginTransaction();
fragmentTransaction4.addToBackStack(null);
getFragmentManager().popBackStack();
fragmentTransaction4.remove(fragment4);
fragmentTransaction4.replace(R.id.frame,fragment4);
fragmentTransaction4.commit();
, wenn Sie in "test" setzen, "description" ist eine Kette von Fragment A und Fragment b nicht:
Bundle args = getArguments();
String token = args.getString("token");
(Fehler) .wie können Sie tun? danke
hast du versucht, statische Methode ?? –
ich nicht statisch, ich schreibe einfach nur diesen Code-Codes. verwende nicht statisch. –
eine einfache Möglichkeit ist static Schlüsselwort für Ihre Testmethode zu verwenden und String als Eingabeparameter wie folgt zu erhalten: public static test (String string) dann innerhalb von body of test neue Instanz von Bundle und .. dann füge dein Fragment hinzu –