2016-03-07 5 views
0

Я хочу, чтобы извлечь данные строки из моего фрагмента, который послал от деятельности, и я использую этот код для отправки:извлечение данных из фрагмента

Bundle bundle = new Bundle(); 
bundle.putString("name",texts.get(position)); 
CatSelected catSelected = new CatSelected(); 
catSelected.setArguments(bundle); 
getFragmentManager().beginTransaction().replace(R.id.container, catSelected, "CatSelected").commit(); 

И этот код получить:

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.search_frag, container, false); 
    txt = (TextView) view.findViewById(R.id.textView); 
    txt.setText(getArguments().getString("name")); 
    return view; 
} 

Но textview показывает текст по умолчанию и не изменяется. В чем проблема?

ответ

0

Общепринятая практика, наблюдаемая при использовании фрагментов, заключается не в том, чтобы непосредственно создавать экземпляр фрагмента. Вместо этого вы получаете объект фрагмента, делая что-то вроде ниже.

MyFragment = MyFragment.newInstance(int arg1, String args2); // pass your args here 
    getSupportFragmentManager().beginTransaction().replace(R.id.flContent, fragment).commit(); 

Теперь MyFragment состоит из

public static MyFragment newInstance(int arg1, String arg2) { 
     MyFragment fragment = new MyFragment(); 
     Bundle args = new Bundle(); 
     args.putInt("arg1Key", arg1); 
     args.putInt("arg1Key", arg2); 
     fragment.setArguments(args); 
     return fragment; 
    } 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    if (getArguments() != null) { 
     myArg1 = getArguments().getInt("arg1Key"); 
     myArg2 = getArguments().getInt("arg2Key"); 
    } 
} 
+0

большое вам спасибо –

0

Во втором фрагменте или фрагменте, который вы хотите получить переданное значение, сначала должен создать пакет. Попробуйте это.

Bundle bundle = getArguments(); 
    txt.setText = bundle.getString("name"); 
+0

, который не работал –

+0

СММ и то, что вы хотите точно передать данные от одного фрагмента к другому или что? –

+0

Я хочу передать строку из mainactivity в мой фрагмент. что ты имеешь в виду? –

Смежные вопросы