Как управлять новым FrameLayout во втором действии, основанном на Clicklistener во фрагменте? - PullRequest
0 голосов
/ 11 марта 2019

Я занимаюсь реализацией фрагмента проекта Android и получаю неприятности.Вот история проблемы:

Я создал Основное действие, которое удерживает фрагмент с использованием Fragment Layout.Я делаю это потому, что хочу реализовать меню навигации с помощью меню ящика.Это прекрасно работает для всех этих шагов.

вот код:

public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
private DrawerLayout drawer;
private Toolbar toolbar;
private NavigationView navigationView;
private ActionBarDrawerToggle toggle;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    drawer = findViewById(R.id.layout_drawer);
    navigationView = findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);

    toggle = new ActionBarDrawerToggle(this,drawer,toolbar,
            R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawer.addDrawerListener(toggle);
    toggle.syncState();

    if (savedInstanceState == null) {
        getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
                new Main_fragment()).commit();
        navigationView.setCheckedItem(R.id.home);
    }
}

пока все работает нормально.

Затем в операции фрагмента я вызвал Textview и вызвал новую операцию.я делаю это потому, что хочу создать новый заполнитель для фрагментов и поставить другое меню ящика.

ее код:

public class Main_fragment extends Fragment{
TextView t1,t2,t3,t4,t5,t6,t7;

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable final Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.main_fragment,container,false);
    //define buttons
    t1 = (TextView) v.findViewById(R.id.txt1);
    t2 = (TextView) v.findViewById(R.id.txt2);
    t3 = (TextView) v.findViewById(R.id.txt3);
    t4 = (TextView) v.findViewById(R.id.txt4);
    t5 = (TextView) v.findViewById(R.id.txt5);
    t6 = (TextView) v.findViewById(R.id.txt6);
    t7 = (TextView) v.findViewById(R.id.txt7);


    t1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //intent to the second activity
            Intent i = new Intent(getActivity(), Social_Container.class);
            startActivity(i);
        }
    });
    t2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(getActivity(), Social_Container.class);
            startActivity(i);
        }
    });
    t3.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(getActivity(), Social_Container.class);
            startActivity(i);
        }
    });
    t4.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(getActivity(), Social_Container.class);
            startActivity(i);

            /**
            //this code just for trial fragment
            FragmentTransaction fr = getFragmentManager().beginTransaction();
            fr.replace(R.id.fragment_container, new Fragment_Pengurusan());
            fr.commit();
            **/
        }
    });
    t5.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(getActivity(), Social_Container.class);
            startActivity(i);

            /**
            FragmentTransaction fr = getFragmentManager().beginTransaction();
            fr.replace(R.id.fragment_container, new Fragment_Politic());
            fr.commit();
            **/
        }
    });
    t6.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(getActivity(), Social_Container.class);
            startActivity(i);

            /**
            FragmentTransaction fr = getFragmentManager().beginTransaction();
            fr.replace(R.id.fragment_container, new Fragment_Industri());
            fr.commit();
            **/
        }
    });
    t7.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(getActivity(), Social_Container.class);
            startActivity(i);

            /**
            FragmentTransaction fr = getFragmentManager().beginTransaction();
            fr.replace(R.id.fragment_container, new Fragment_Awam());
            fr.commit();
            **/
        }
    });

    return v;
  }
}

вопрос в том, как я могу вызватьдействие фрагмента, которое должно быть установлено для заполнителя второго класса (FrameLayout) на основе CLick, который я установил для Textview, которое я прикрепил в последнем действии фрагмента, которое находится внутри основного действия?

примечание: я не установилничего внутри второго класса пока нет.Я просто хочу знать, как вызвать фрагмент внутри этого второго класса на основе ClickListener из TextView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...