Я занимаюсь реализацией фрагмента проекта 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.