JSONからデータを取得し、一部のデータをすべてのフラグメントに送信しようとしています。私は配列リストとn=jsonArray.length();
でJSON値取得したこの前JSONデータをアクティビティからフラグメントに送信する方法は?
private void setupViewPager(ViewPager viewPager,ArrayList<Product> productname,int p) {
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
Bundle args = new Bundle();
}
String price = productname.get(1).getPrice();
args.putString("key", price);
TheFragment tf1 = new TheFragment();
TheFragment tf2 = new TheFragment();
TheFragment tf3 = new TheFragment();
TheFragment tf4 = new TheFragment();
adapter.addFragment(tf1 , "ONE");
tf1.setArguments(args);
adapter.addFragment(tf2 , "Two");
tf2.setArguments(args);
adapter.addFragment(tf3 , "Three");
tf3.setArguments(args);
adapter.addFragment(tf4 , "Four");
tf4.setArguments(args);
//3 adapter.addFragment(new TheFragment(), "TWO"); // Can I send data by coding this way?
//3 adapter.addFragment(new TheFragment(), "THREE");
//3 adapter.addFragment(new TheFragment(),"THE 4");
viewPager.setAdapter(adapter);
}
: はここに私のコードです。
setupViewPager(viewPager,arrayList,n);
JSONファイルには名前、価格、画像が含まれています。私は断片に価格を表示したい。
public class TheFragment extends Fragment {
TextView tv;
public TheFragment() {
}
String value = getArguments().getString("key");
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/* if(value!=null){
tv.setText(value);
} */
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_this, container, false);
tv = (TextView) getView().findViewById(R.id.thePrice);
tv.setText(value);
return view;
}
}
コードはエラーを表示していませんが、アプリケーションは実行されていません。私がやっている間違いや解決策はありますか?ありがとう。
は、jsonを送信するときにあなたのフラグメントが既に開いています。 –
私のフラグメントは、何も送信しなかったときに開いていますが、データを送信しようとしていて、フラグメントレイアウトのテキストビューにテキストを設定したい場合、それは機能しません。 – Saket