public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Fragment1 f1 = new Fragment1();
getSupportFragmentManager().beginTransaction().replace(R.id.f1, f1)
.commit();
Fragment2 f2 = Fragment2.install("经典音乐");
getSupportFragmentManager().beginTransaction().replace(R.id.f2, f2)
.commit();
}
}
public class Fragment2 extends Fragment {
private View v;
private GridView gv;
String[] str = { "歌星一", "歌星二", "歌星三", "歌星四", "歌星五", "歌星六" };
private TextView tv;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
v = inflater.inflate(R.layout.fragment2, null);
return v;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
tv = (TextView) v.findViewById(R.id.f2_tv);
Bundle b = getArguments();
tv.setText(b.getString("name"));
gv = (GridView) v.findViewById(R.id.f2_gv);
gv.setAdapter(new MyAdapter());
gv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView
arg0, View arg1, int arg2,
long arg3) {
Fragment3 f3 = Fragment3.install(str[arg2]);
FragmentTransaction ft = getActivity()
.getSupportFragmentManager().beginTransaction();
ft.addToBackStack("");
ft.replace(R.id.f2, f3);
ft.commit();
}
});
}
class MyAdapter extends BaseAdapter {
@Override
public int getCount() {
return str.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHold vh;
if (convertView == null) {
vh = new ViewHold();
convertView = View.inflate(getActivity(), R.layout.gridview,
null);
vh.tv = (TextView) convertView.findViewById(R.id.gv_tv);
convertView.setTag(vh);
} else {
vh = (ViewHold) convertView.getTag();
}
vh.tv.setText(str[position]);
return convertView;
}
}
public static Fragment2 install(String s) {
Fragment2 f2 = new Fragment2();
Bundle b = new Bundle();
b.putString("name", s);
f2.setArguments(b);
return f2;
}
class ViewHold {
TextView tv;
}
}
Fragment传值-ViewPager优化
最新推荐文章于 2022-10-20 16:58:20 发布