1

Я пытаюсь передать данные из моего MainActivty в другой с ViewPager и получить эти данные в Fragment.Передача данных из операции в другую, а затем переход к фрагменту в ViewPager

Я пробовал, так что может, но приложение разбилось каждый раз.

вот мои классы:

Мой Владелец:

@Override 
public void onBindViewHolder(main_rv_holder holder, int position) { 
    holder.name.setText(mains.get(position).getName()); 
    holder.image_main.setImageResource(mains.get(position).getImg()); 

    //Clicked 
    holder.setItemClickListener(new ItemClickListener() { 
    @Override 
    public void onItemClick(View view, int position) { 
     Intent intent = new Intent(context,ViewerActivity.class); 
     intent.putExtra("title",mains.get(position).getName()); 
     intent.putExtra("pos",position); 
     context.startActivity(intent); 
    } 
    }); 
} 

Моя активность с пейджера:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_viewer); 
    //Toolbar Initialization 
    InitializeToolbar(); 
    //ViewPAGER Initialization 
    InitializePager(); 
    //Floating Action Button 
    Fabinitialize(); 

    //pass data 
    Bundle data = new Bundle(); 
    //Use bundle to pass data 
    Form1 fragmentobj = new Form1(); 

    data.putString("tag","Hello"); 
    fragmentobj.setArguments(data); 
} 

Фрагмент в ViewPager:

public class Form1 extends Fragment { 
    String TAG; 

    public Form1() { 
    TAG = getArguments().getString("tag"); 
    // Required empty public constructor 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment, container, false); 
    TextView textView = (TextView) view.findViewById(R.id.text_VIew); 
    textView.setText(TAG); 

    return view; 
    } 
} 

спасибо.

+0

почему вы передачи данных так много раз? Просто сохраните эти данные в общих предпочтениях или db, а затем обращайтесь к нему непосредственно в представлении pager –

+0

Я хочу, чтобы фрагменты загружали разные данные, когда вы нажимаете на позицию и выбираете категорию, поэтому я хочу, чтобы фрагмент знал, что было нажато для загрузки соответствующие данные @VivekMishra –

+0

Вы можете получить доступ к намерению в фрагменте напрямую, как getActivity(). getIntent(). getStringExtra («ключ»); –

ответ

1

Смотрите ниже код

@Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.fragment, container, false); 
     TextView textView = (TextView) view.findViewById(R.id.text_VIew); 
    String title= getActivity().getIntent().getStringExtra("title"); 
     textView.setText(title); 

      return view; 
     } 
    } 
+0

Спасибо, что он сработал –

+0

Прошу проголосовать, если этот код поможет вам –

+0

Извините, но я не могу голосовать –