动态添加Fragment显示主页

本文介绍了如何在Activity中动态地添加和管理多个Fragment,以实现主页内容的展示。使用了`android.support.v4.app.FragmentManager`和`FragmentTransaction`进行Fragment的操作。同时,创建了Fragment的实例,如`FragmentOne`,并实现了数据适配器`MyRxxAdapter`来填充ListView或GridView的内容。通过这种方式,可以灵活地构建和更新应用的主页视图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Activity操作

import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RelativeLayout;

import com.example.yf.zk03.fragment.FragmentOne;
import com.example.yf.zk03.fragment.FragmentThree;
import com.example.yf.zk03.fragment.FragmentTwo;
import com.example.yf.zk03.fragment.Fragmentfour;

public class ShowActivity extends AppCompatActivity {

private RelativeLayout relative;
private RadioGroup radio_group;
private RadioButton rb1;
private RadioButton rb2;
private RadioButton rb3;
private RadioButton rb4;
private FragmentOne fragmentOne;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_show);
    relative = findViewById(R.id.relative);
    radio_group = findViewById(R.id.radio_group);
    rb1 = findViewById(R.id.rb1);
    rb2 = findViewById(R.id.rb2);
    rb3 = findViewById(R.id.rb3);
    rb4 = findViewById(R.id.rb4);

    final FragmentManager manager = getSupportFragmentManager();
    FragmentTransaction transaction = manager.beginTransaction();
    fragmentOne = new FragmentOne();
    transaction.add(R.id.relative,fragmentOne);
    transaction.commit();

    radio_group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

        private Fragmentfour fragmentfour;
        private FragmentThree fragmentThree;
        private FragmentTwo fragmentTwo;
        private FragmentTransaction beginTransaction;

        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            beginTransaction = manager.beginTransaction();
            if (fragmentOne!=null){
                beginTransaction.hide(fragmentOne);
            }
            if (fragmentTwo!=null){
                beginTransaction.hide(fragmentTwo);
            }
            if (fragmentThree!=null){
                beginTransaction.hide(fragmentThree);
            }
            if (fragmentfour!=null){
                beginTransaction.hide(fragmentfour);
            }


            switch (checkedId){
                case R.id.rb1:
                    if (fragmentOne==null){
                        fragmentOne = new FragmentOne();
                        beginTransaction.add(R.id.relative,fragmentOne);
                    }else {
                        beginTransaction.show(fragmentOne);
                    }
                    break;
                case R.id.rb2:
                    if (fragmentTwo==null) {
                        fragmentTwo = new FragmentTwo();
                        beginTransaction.add(R.id.relative, fragmentTwo);
                    }else{
                        beginTransaction.show(fragmentTwo);
                    }
                    break;
                case R.id.rb3:
                    if (fragmentThree==null){
                        fragmentThree = new FragmentThree();
                        beginTransaction.add(R.id.relative,fragmentThree);
                    }else {
                        beginTransaction.show(fragmentThree);
                    }
                    break;
                case R.id.rb4:
                    if (fragmentfour==null){
                        fragmentfour = new Fragmentfour();
                        beginTransaction.add(R.id.relative,fragmentfour);
                    }else{
                        beginTransaction.show(fragmentfour);
                    }
                    break;
            }
            beginTransaction.commit();
        }
    });


}

}

创建fragment

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.GridView;
import android.widget.ListView;

import com.example.yf.zk03.R;
import com.example.yf.zk03.adapter.MyRxxAdapter;
import com.example.yf.zk03.bean.MyData;
import com.example.yf.zk03.home.presenter.Presenter;
import com.example.yf.zk03.home.view.IView;
import com.google.gson.Gson;
import com.stx.xhb.xbanner.XBanner;

import java.util.List;

public class FragmentOne extends Fragment implements IView {

private View view;
private XBanner xbanner;
private GridView grid_view_pzsh;
private GridView grid_view_rxxp;
private ListView list_view;
private List<MyData.ResultBean.MlssBean> mlsslist;
private List<MyData.ResultBean.PzshBean> pzshList;
private List<MyData.ResultBean.RxxpBean> rxxpList;

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    view = inflater.inflate(R.layout.one, container, false);
    xbanner = view.findViewById(R.id.xbanner);
    grid_view_pzsh = view.findViewById(R.id.grid_view_pzsh);
    grid_view_rxxp = view.findViewById(R.id.grid_view_rxxp);
    list_view = view.findViewById(R.id.list_view);
    Presenter presenter = new Presenter(this);
    presenter.getPreData();
    return view;

}

@Override
public void getViewData(String mViewData) {
    Gson gson = new Gson();
    MyData myData = gson.fromJson(mViewData, MyData.class);
    mlsslist = myData.getResult().getMlss();
    pzshList = myData.getResult().getPzsh();
    rxxpList = myData.getResult().getRxxp();

    getActivity().runOnUiThread(new Runnable() {
        @Override
        public void run() {
            if (rxxpList!=null){
                MyRxxAdapter rxxAdapter =new MyRxxAdapter(getActivity(),rxxpList);
                grid_view_rxxp.setAdapter(rxxAdapter);
            }
        }
    });
}

@Override
public void getBannerData(String banner) {

}

}
创建Adapter

import android.content.Context;
import android.media.Image;
import android.support.v4.app.FragmentActivity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.example.yf.zk03.R;
import com.example.yf.zk03.bean.MyData;

import java.util.List;

public class MyRxxAdapter extends BaseAdapter {

private Context context;
private List<MyData.ResultBean.RxxpBean> rxxpList;

public MyRxxAdapter(Context context, List<MyData.ResultBean.RxxpBean> rxxpList) {
    this.context = context;
    this.rxxpList = rxxpList;
}



@Override
public int getCount() {
    return rxxpList.size();
}

@Override
public Object getItem(int position) {
    return rxxpList.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    if (convertView==null){

      convertView= View.inflate(context,R.layout.item1,null);
      holder = new ViewHolder();
      holder.rxxp_img=convertView.findViewById(R.id.rxxp_img);
      holder.rxxp_price=convertView.findViewById(R.id.rexxp_price);
      holder.rxxp_title=convertView.findViewById(R.id.rexxp_title);
      convertView.setTag(holder);
    }else {
        holder= (ViewHolder) convertView.getTag();
    }
    holder.rxxp_price.setText(rxxpList.get(position).getCommodityList().get(position).getPrice());
    holder.rxxp_title.setText(rxxpList.get(position).getCommodityList().get(position).getCommodityName());
    Glide.with(context).load(rxxpList.get(position).getCommodityList().get(position).getMasterPic()).into(holder.rxxp_img);
    return convertView;
}
class ViewHolder{
    private ImageView rxxp_img;
    private TextView rxxp_title,rxxp_price;
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值