我有ALr.java類和FragHandler。 FragHandler有Tablayout和viewpager。 ALR和FragHandler代碼在下面寫成。我想通過調用activatealert方法來打開FragHandler中第三個選項卡的Settings選項卡,從ALR即rl.setonclicklisterner中單擊。Android - 打開從片段中的對話框發射的第三個選項卡
MyFragHandler類
public class FragHandler extends AppCompatActivity
TabLayout tabLayout;
Toolbar customtoolbar;
SharedPreferences sharedPreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.alstabopener);
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
tabLayout = (TabLayout) findViewById(R.id.tab_layout);
tabLayout.addTab(tabLayout.newTab().setText("1"));
tabLayout.addTab(tabLayout.newTab().setText("2"));
tabLayout.addTab(tabLayout.newTab().setText("Settings"));
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
final ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
final AlsViewChanger adapter = new AlsViewChanger(getSupportFragmentManager(), tabLayout.getTabCount());
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
}
,並從那裏我米試圖打開標籤我ALR.java 3.
public class ALR extends Fragment {
TextView rl,
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) throws NullPointerException {
View view = inflater.inflate(R.layout.ar, container, false);
rl = (TextView) view.findViewById(R.id.reto);
rl.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
activatealert();
});
public void activatealert() {
MaterialDialog activateald = new MaterialDialog.Builder(getActivity())
.content("In order to use these services, please click settings and set appropriate options to activate Where R U feature.")
.title("Activate Where R U")
.positiveColor(Color.BLUE)
.negativeColor(Color.RED)
.positiveText("Settings")
.negativeText("Cancel")
.onPositive(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
Intent intent = new Intent(getActivity(),FragHandler.class);
intent.putExtra("Settings",2);
startActivity(intent);
}
})
.show();
}
}
它打開所需的選項卡式activitiy但第一個標籤不三分之一。請指導。
我更新體的詳細信息。請閱讀並指導。因爲1或2的情況都沒有幫助,因爲我沒有在我調用標籤3的ALR.java類中使用tablayout和viewpager。 – Panache
@Panache如果我理解正確,則情況1是您需要的。您正在通過傳遞「設置」標誌從ALR.java開始FragHandler活動。現在在FragHandler的onCreate中,你可能正在初始化你的ViewPager&TabLayout。只需在該代碼下面,嘗試通過添加一行來檢查,如 viewPager.setCurrentItem(2);這將以編程方式製作第三個選項卡。 –
我增加了兩個班,更好的信息,請看看 – Panache