Grundsätzlich habe ich eine Aktivität namens ComputerOptions. In ComputerOptions gibt es Schaltflächen, auf die Sie klicken können, um zu einer Aktivität mit Registerkarten zu gelangen. Diese TabbedActivity enthält verschiedene Fragmente, die die Listview für eine Reihe von Optionen enthalten. Jedes Mal, wenn ich die Absicht festlege, wird nur Tab1 geladen und nicht in Tab2 geladen. Welchen Code muss ich verwenden? Wenn ich also auf Button2 auf ComputerOptions klicke, wird tab2 und die ListView-Fragmente in TabbedActivity geladen? Hier ist der Code und das Bild. Wie Sie sehen können, bin ich neu in Android-Entwicklung, so würde jede Hilfe geschätzt werden.Wie lade ich mit einer onClick-Methode in einen bestimmten Fragment/Viewpager?
ComputerOptions.java
public class ComputerOptions extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.computer_options);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
TextView toolTitle = (TextView) findViewById(R.id.toolbar_title);
toolTitle.setText("Computer");
toolTitle.setTextColor(Color.parseColor("#FFFFFF"));
setSupportActionBar(toolbar);
// add back arrow to toolbar_layout
if (getSupportActionBar() != null){
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// handle arrow click here
if (item.getItemId() == android.R.id.home) {
finish(); // close this activity and return to preview activity (if there is any)
}
return super.onOptionsItemSelected(item);
}
public void Button1(View view) {
Intent intent = new Intent(view.getContext(), TabbedActivity.class);
startActivityForResult(intent, 0);
}
public void Button2(View view) {
/** I think I do something like this in the intent to load tab2
Intent i = new Intent(this, TabbedActivity.class);
i.putExtra("frgToLoad", 1);
// Now start your activity
startActivity(i);
*/
}
}
PageAdapter.java
class PagerAdapter extends FragmentStatePagerAdapter {
int mNumOfTabs;
public PagerAdapter(FragmentManager fm, int NumOfTabs) {
super(fm);
this.mNumOfTabs = NumOfTabs;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
FragmentOne tab1 = new FragmentOne();
return tab1;
case 1:
FragmentTwo tab2 = new FragmentTwo();
return tab2;
case 2:
FragmentThree tab3 = new FragmentThree();
return tab3;
case 3:
FragmentFour tab4 = new FragmentFour();
return tab4;
case 4:
FragmentFive tab5 = new FragmentFive();
return tab5;
default:
return null;
}
}
@Override
public int getCount() {
return mNumOfTabs;
}
}
Button2.java
public class Button2 extends Fragment {
public Button2() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.tab_fragment_2, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
ListView lv = (ListView)getActivity().findViewById(R.id.listView2);
String[] values = new String[] { "Ex1", "Ex2", "Ex3",
"Ex4", "Ex5", "Ex6", "Ex7", "Ex8",
"Ex9", "Ex10" };
ArrayAdapter<String> adapter = new ArrayAdapter<>(getActivity(),
android.R.layout.simple_list_item_1, values);
lv.setAdapter(adapter);
// Handles items being clicked
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
if (position == 0) {
Intent intent = new Intent(getContext(), ComputerOptions.class);
startActivity(intent);
}
}
}
);
}
}
versuchen Sie dies http://stackoverflow.com/questions/15150587/how-to-change-tab-on-button-click-in-android –