0
フラグメントAからアクティビティメソッドを呼び出しています。正常です。 しかし、どのように文字列を置くことができるのですが、それはフラグメントBを開き、文字列から情報を受け取りますか?内方からのActivityメソッドの呼び出しから文字列を挿入する
活動:
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();
}
フラグメント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;
}
}
});
これまでのところ。しかし、今どこで文字列バンドルを配置しますか?
あなたは、 "テスト"、 "説明" に入れ 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();
は、フラグメントAの文字列であり、 断片Bを動作しません:
Bundle args = getArguments();
String token = args.getString("token");
(エラー).howあなたが行うことができますか?ありがとう
のようなものであるフラグメントへの値は、あなたは、静的メソッドを試してみました? –
私は静的ではありません、私は単にこのコードコードを書いています。静的を使用しないでください。 –
簡単な方法は、テストメソッドの静的キーワードを使用して、このように入力パラメータとして文字列を取得することです:public static test(String string)次にテスト本体内でBundleの新しいインスタンスを作成して..次にフラグメントを追加します –