接口回调

//继承Fragment,静态Fragment数据传值方式传值给右侧Fragment

<fragment
    android:id="@+id/f1"
    class="com.example.administrator.week_demo_b.fragment_demo1"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1" />

<fragment
    android:id="@+id/f2"
    class="com.example.administrator.week_demo_b.fragment_demo2"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="2" />
//f1拿数据,传值给f2

package com.example.administrator.week_demo_b;

import android.os.Bundle;
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.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.TextHttpResponseHandler;

import java.util.ArrayList;
import java.util.List;

import cz.msebera.android.httpclient.Header;

public class fragment_demo1 extends Fragment {

    private View view;
    private ListView list_item;
    private String url="http://www.meirixue.com/api.php?c=category&a=getall";
    private List<Info> infos;
    private OntransVlues ontransVluse;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.activity_fragment_demo1, null);
        return view;
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        //拿到控件
        list_item = (ListView) view.findViewById(R.id.list_item);
        //解析数据
        AsyncHttpClient client=new AsyncHttpClient();
        client.get(url, new TextHttpResponseHandler() {
            @Override
            public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
            }
            @Override
            public void onSuccess(int statusCode, Header[] headers, String responseString) {
            Gson gson=new Gson();
                infos = gson.fromJson(responseString, new TypeToken<List<Info>>() {}.getType());
                List<String>list_name=new ArrayList<String>();
                for (int i = 0; i <infos.size() ; i++) {
                    String cname = infos.get(i).getCname();
                    list_name.add(cname);
                }
                //适配器
                list_item.setAdapter(new ArrayAdapter<String>(getActivity(),android.R.layout.simple_expandable_list_item_1,list_name));
            }
        });
        //点击条目传值
        list_item.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                //点击条目接口传值
                ontransVluse.see(infos.get(position).getNodes());
            }
        });
    }
    //创建接口
    public interface  OntransVlues{
        void  see(List<Info.NodesBean> list);
    }
    //对外提供访问方法
    public void setOntransVlues(OntransVlues ontransVlues){
        this.ontransVluse=ontransVlues;
    }
}
//f2拿到控件,找到f1需要调用的接口,进行赋值

package com.example.administrator.week_demo_b;

import android.os.Bundle;
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.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;

public class fragment_demo2 extends Fragment {

    private View view;
    private TextView text_name;
    private ListView list_item2;
    private List<Info.NodesBean>list_s=new ArrayList<>();
    private TextView text_name1;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.activity_fragment_demo2, null);
        return view;
    }
    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        //找到控件
        list_item2 = (ListView) view.findViewById(R.id.list_item2);
        //调用f1的接口就得拿到f1
       fragment_demo1 fragment_demo1 = (com.example.administrator.week_demo_b.fragment_demo1) getActivity().getSupportFragmentManager().findFragmentById(R.id.f1);
       //通过f1拿到接口。获得数据
        fragment_demo1.setOntransVlues(new fragment_demo1.OntransVlues() {
            @Override
            public void see(List<Info.NodesBean> list) {
                list_s=list;
                list_item2.setAdapter(new Myadapter());
            }
        });
    }
    class Myadapter extends BaseAdapter{

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

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

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

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
           convertView=View.inflate(getActivity(),R.layout.list_item_layout,null);
            text_name1 = (TextView) convertView.findViewById(R.id.text_name);
            text_name1.setText(list_s.get(position).getCategory_name());
            return convertView;
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值