点击listview条目向fragment中传值

该博客介绍了如何在ListView的点击事件中将数据传递到目标Fragment,详细讲解了实现这一功能的步骤和关键代码,适用于Android应用开发中的数据交互场景。

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

=========================布局   主布局===================================

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:background="#8f0"
    android:orientation="horizontal"
    android:layout_height="match_parent">
    <ListView
        android:id="@+id/my_lv"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="2">

    </ListView>
    <FrameLayout
        android:id="@+id/my_framelayout"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="8"
        ></FrameLayout>

</LinearLayout>
 
 
========================代码===============================================
public class FragmentMy extends Fragment{

    private ListView listView;
    private FrameLayout frameLayout;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_my, container, false);
        listView = (ListView) view.findViewById(R.id.my_lv);
        frameLayout = (FrameLayout) view.findViewById(R.id.my_framelayout);

        return view;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        final List<String> list=new ArrayList<>();
        list.add("头条");
        list.add("军事");
        list.add("娱乐");
        list.add("财经");
        list.add("科技");
        list.add("游戏");
        listView.setAdapter(new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,list));

        My_Child_Fragment fragment=new My_Child_Fragment();
        Bundle bundle=new Bundle();
        bundle.putString("name",list.get(0));
        fragment.setArguments(bundle);
        getChildFragmentManager().beginTransaction().replace(R.id.my_framelayout,fragment).commit();

        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                My_Child_Fragment fragment=new My_Child_Fragment();
                Bundle bundle=new Bundle();
                bundle.putString("name",list.get(i));
                fragment.setArguments(bundle);
                getChildFragmentManager().beginTransaction().replace(R.id.my_framelayout,fragment).commit();

            }
        });



    }
}
================================子布局====================
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <GridView
        android:id="@+id/my_gv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:numColumns="2"></GridView>
</LinearLayout>
==========================代码=======================================
public class My_Child_Fragment extends Fragment{

    private GridView gridView;
    private String name;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.my_child_frag, container, false);
        gridView = (GridView) view.findViewById(R.id.my_gv);
        return view;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        name = getArguments().getString("name");

        if (name.equals("头条")){
            name = "top";
        }else if (name.equals("军事")){
            name = "junshi";
        }else if (name.equals("娱乐")){
            name = "shehui";
        }else if (name.equals("财经")){
            name = "caijing";
        }else if (name.equals("科技")){
            name = " keji";
        }else if (name.equals("游戏")){
            name = "youxi";
        }

        String path="http://v.juhe.cn/toutiao/index?type="+ name +"&key=56f60ed0ce2479e727cd5e39b795928c&page=1";
        NetConnection.getconnection(getActivity(), path, new CallJsonBack() {
            @Override
            public void getcallBack(String json) {
                if (json!=null){
                    Gson gson=new Gson();
                    MyGridBean myGridBean = gson.fromJson(json, MyGridBean.class);
                    List<MyGridBean.ResultBean.DataBean> data = myGridBean.getResult().getData();
                    MyGridAdapter gridAdapter=new MyGridAdapter(data,getActivity());
                    gridView.setAdapter(gridAdapter);

                }
            }
        });

    }
}
//其他代码省略。。。。。。。。。。。。。。。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值