У меня есть 2 Fragments
- ButtonFragment
и ListViewFragment
- in my Activity
MainActivity
.Как показать/скрыть фрагмент на кнопке
ButtonFragment
содержит Button
, ListViewFragment
содержит ListView
.
Каждый раз, когда я нажимаю на ButtonFragment
Button
, я хочу, чтобы ListViewFragment
показать/скрыть.
Как это правильно закодировать?
В настоящее время мой код выглядит следующим образом:
MainActivity.java
public class MainActivity extends Activity implements Communicator {
ButtonFragment buttonFrag;
ListViewFragment listviewFrag;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonFrag= new ButtonFragment();
listviewFrag = new ListViewFragment();
manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.add(R.id.button_fragment, buttonFrag, "Fragment1");
transaction.add(R.id.listview_fragment, listviewFrag, "Fragment2");
transaction.commit();
}
}
ButtonFragment.java
public class DynamicButtonsFragment extends Fragment implements View.OnClickListener {
Button btn;
@Override
public View onCreateView(LayoutInflater inflater,
@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.button_fragment_layout, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
@Override
public void onClick(View v) {
//?? hide listview fragment from here ??
}
}
ListViewFragment.java
public class ListViewFragment1 extends Fragment {
protected ArrayAdapter<String> adapter1;
@Override
public View onCreateView(LayoutInflater inflater,
@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.list_view_fragment, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
}
Так мои Ques где я должен реализовать отображение/скрытие ListViewFragment
? Мне кажется, что я должен отправить данные в MainActivity
с помощью метода onClick
ButtonFragment
. Но я не знаю, как это сделать.
Или я только добавляю код в MainActivity
, так как MainActivity
имеет доступ ко всем Fragments
?
У меня возникли проблемы, потому что Button
находится в Fragment
, а не в MainActivity
. Я действительно не видел таких случаев ...
Может кто-нибудь помочь?
Вы, конечно, сделать много вопросов и замечаний в одном посте. Я хочу сделать эти пункты. Вы не отправляете данные в фрагмент, вы можете использовать метод findViewById (читайте об этом). Пользовательский интерфейс Button может находиться внутри фрагмента, главным образом потому, что объекты пользовательского интерфейса должны находиться в фрагменте. По мере того, как я пытаюсь, вам нужно будет устроиться с каркасом Android. Получайте удовольствие ... –