gpt4 book ai didi

java - 如何使用 onClick 方法加载到特定的 Fragment/Viewpager 中?

转载 作者:太空宇宙 更新时间:2023-11-04 11:54:11 26 4
gpt4 key购买 nike

基本上我有一个名为 ComputerOptions 的 Activity 。在 ComputerOptions 内部有一些按钮,您可以单击这些按钮将您带到选项卡式 Activity 。此 TabbedActivity 具有不同的 fragment ,其中包括一组选项的 ListView 。每次我设置 Intent 时,它只会加载 Tab1 而不会加载到 Tab2 中。我需要使用什么代码,以便如果我单击 ComputerOptions 上的按钮2,它将加载 tab2 和 TabbedActivity 中的 fragment Listview?这是代码和图像。正如你所知,我是 Android 开发的新手,所以任何帮助将不胜感激。

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);
}
}
}
);

}

}

最佳答案

试试这个:

在每个按钮单击上传递选项卡位置:

Intent intent = new Intent(view.getContext(), TabbedActivity.class);
final Bundle bundle = new Bundle();
bundle.putString("TabNumber", tab_number);
intent.putExtras(bundle);
startActivity(intent);

现在在 TabbedActivity 中:

 //get tab number
final Intent intent = getIntent();
if (intent.hasExtra("TabNumber")) {
String tab = intent.getExtras().getString("TabNumber");
Log.e("TabNumberFriendList",tab);
switchToTab(tab);
}
public void switchToTab(String tab){
if(tab.equals("0")){
viewPager.setCurrentItem(0);
}else if(tab.equals("1")){
viewPager.setCurrentItem(1);
}else if(tab.equals("2")){
viewPager.setCurrentItem(2);
}
}

关于java - 如何使用 onClick 方法加载到特定的 Fragment/Viewpager 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41507462/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com