刷新加载

public class ItemFragment extends Fragment implements IXListViewListener {

    private String path;
    Handler handler = new Handler() {
        public void handleMessage(Message msg) {
            String xml = (String) msg.obj;

            xml(xml);
            xlistView.setAdapter(new MyAdapter(getActivity(), list));
        };
    };
    LinkedList<Bean> list = new LinkedList<Bean>();
    private Bean bean;
    private XListView xlistView;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View contextView = inflater.inflate(R.layout.fragment_item, container,
                false);
        xlistView = (XListView) contextView.findViewById(R.id.xlistView);
        // 获取Activity传递过来的参数
        Bundle mBundle = getArguments();
        path = mBundle.getString("arg");
        System.out.println(path + "java");
        xlistView.setPullLoadEnable(true);
        xlistView.setXListViewListener(this);
        getXml();
        return contextView;
    }

    protected void xml(String xml) {

        // 得到解析器
        XmlPullParser pullParser = Xml.newPullParser();
        // 把Stirng转成流
        ByteArrayInputStream arrayInputStream = new ByteArrayInputStream(
                xml.getBytes());
        try {
            pullParser.setInput(new InputStreamReader(arrayInputStream));
            // 得到事件类型
            int eventType = pullParser.getEventType();
            while (eventType != XmlPullParser.END_DOCUMENT) {
                switch (eventType) {
                case XmlPullParser.START_TAG:
                    // 得到标签名
                    String tagName = pullParser.getName();

                    if ("news".equals(tagName)) {
                        bean = new Bean();
                    } else if ("title".equals(tagName)) {
                        bean.title = pullParser.nextText();
                    } else if ("body".equals(tagName)) {
                        bean.body = pullParser.nextText();
                    } else if ("commentCount".equals(tagName)) {
                        bean.commentCount = pullParser.nextText();
                    } else if ("author".equals(tagName)) {
                        bean.author = pullParser.nextText();
                    } else if ("pubDate".equals(tagName)) {
                        bean.pubDate = pullParser.nextText();
                    }

                    break;

                case XmlPullParser.END_TAG:
                    // 结束标签的名字
                    tagName = pullParser.getName();
                    if ("news".equals(tagName)) {
                        list.addLast(bean);
                    }

                    break;
                }
                eventType = pullParser.next();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    private void getXml() {
        HttpUtils httpUtils = new HttpUtils();
        httpUtils.configCurrentHttpCacheExpiry(0);
        httpUtils.send(HttpMethod.GET, path, new RequestCallBack<String>() {

            @Override
            public void onFailure(HttpException arg0, String arg1) {

            }

            @Override
            public void onSuccess(ResponseInfo<String> arg0) {

                String result = arg0.result;
                System.out.println(result);
                Message msg = Message.obtain();
                msg.obj = result;
                handler.sendMessage(msg);

            }
        });
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
    }

    @Override
    public void onRefresh() {
        getXml();

        xlistView.stopLoadMore();
        xlistView.stopRefresh();

    }

    @Override
    public void onLoadMore() {
        getXml();

        xlistView.stopLoadMore();
        xlistView.stopRefresh();

    }

}

//



public class MainActivity extends FragmentActivity implements OnClickListener {

    private RadioGroup rg;
    private RadioButton r1;
    private RadioButton r2;
    private RadioButton r3;
    private RadioButton r4;
    private ViewPager pager;
    String[] path = new String[] {
         "字符串"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 找控件
        findView();
        // 设置监听
        r1.setOnClickListener(this);
        r2.setOnClickListener(this);
        r3.setOnClickListener(this);
        r4.setOnClickListener(this);
        pager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {

            @Override
            public int getCount() {
                return path.length;
            }

            @Override
            public Fragment getItem(int arg0) {
                // 新建一个Fragment来展示ViewPager item的内容,并传递参数
                Fragment fragment = new ItemFragment();
                Bundle args = new Bundle();
                args.putString("arg", path[arg0]);
                fragment.setArguments(args);

                return fragment;
            }
        });
        r1.setChecked(true);
        r1.setTextColor(Color.GREEN);
        pager.setOnPageChangeListener(new OnPageChangeListener() {

            @Override
            public void onPageSelected(int arg0) {
                switch (arg0) {
                case 0:
                    r1.setChecked(true);
                    r2.setChecked(false);
                    r3.setChecked(false);
                    r4.setChecked(false);
                    r1.setTextColor(Color.GREEN);
                    r2.setTextColor(Color.BLACK);
                    r3.setTextColor(Color.BLACK);
                    r4.setTextColor(Color.BLACK);
                    break;
                case 1:
                    r1.setChecked(false);
                    r2.setChecked(true);
                    r3.setChecked(false);
                    r4.setChecked(false);
                    r1.setTextColor(Color.BLACK);
                    r2.setTextColor(Color.GREEN);
                    r3.setTextColor(Color.BLACK);
                    r4.setTextColor(Color.BLACK);
                    break;
                case 2:
                    r1.setChecked(false);
                    r2.setChecked(false);
                    r3.setChecked(true);
                    r4.setChecked(false);
                    r1.setTextColor(Color.BLACK);
                    r2.setTextColor(Color.BLACK);
                    r3.setTextColor(Color.GREEN);
                    r4.setTextColor(Color.BLACK);
                    break;
                case 3:
                    r1.setChecked(false);
                    r2.setChecked(false);
                    r3.setChecked(false);
                    r4.setChecked(true);
                    r1.setTextColor(Color.BLACK);
                    r2.setTextColor(Color.BLACK);
                    r3.setTextColor(Color.BLACK);
                    r4.setTextColor(Color.GREEN);
                    break;

                default:
                    break;
                }
            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {

            }

            @Override
            public void onPageScrollStateChanged(int arg0) {
                // TODO Auto-generated method stub

            }
        });
    }

    private void findView() {
        rg = (RadioGroup) findViewById(R.id.rg);
        r1 = (RadioButton) rg.findViewById(R.id.r1);
        r2 = (RadioButton) rg.findViewById(R.id.r2);
        r3 = (RadioButton) rg.findViewById(R.id.r3);
        r4 = (RadioButton) rg.findViewById(R.id.r4);
        pager = (ViewPager) findViewById(R.id.pager);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.r1:
            pager.setCurrentItem(0);
            break;
        case R.id.r2:
            pager.setCurrentItem(1);
            break;
        case R.id.r3:
            pager.setCurrentItem(2);
            break;
        case R.id.r4:
            pager.setCurrentItem(3);
            break;
        default:
            break;
        }
    }
}

/


public class MyAdapter extends BaseAdapter {
    Context context;
    LinkedList<Bean> list;

    // 有参构造
    public MyAdapter(Context context, LinkedList<Bean> list) {
        super();
        this.context = context;
        this.list = list;
    }

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

    @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) {
        View view;
        ViewHoler holer;
        if (convertView == null) {
            view = View.inflate(context, R.layout.listview, null);
            holer = new ViewHoler();
            holer.lv_title = (TextView) view.findViewById(R.id.lv_title);
            holer.lv_body = (TextView) view.findViewById(R.id.lv_body);
            holer.lv_author = (TextView) view.findViewById(R.id.lv_author);
            holer.lv_pubdata = (TextView) view.findViewById(R.id.lv_pubdata);
            holer.lv_pinlun = (TextView) view.findViewById(R.id.lv_pinlun);
            view.setTag(holer);
        } else {
            view = convertView;
            holer = (ViewHoler) view.getTag();
        }
        holer.lv_title.setText(list.get(position).title);
        holer.lv_body.setText(list.get(position).body);
        holer.lv_author.setText("作者:" + list.get(position).author);
        holer.lv_pubdata.setText("时间:" + list.get(position).pubDate);
        holer.lv_pinlun.setText("评论数:" + list.get(position).commentCount);
        return view;
    }

    class ViewHoler {
        TextView lv_title;
        TextView lv_body;
        TextView lv_author;
        TextView lv_pubdata;
        TextView lv_pinlun;
    }
}

//

activity_main.xml

<RadioGroup
        android:id="@+id/rg"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <RadioButton
            android:id="@+id/r1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:text="资讯" />

        <RadioButton
            android:id="@+id/r2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:text="热点 " />

        <RadioButton
            android:id="@+id/r3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:text="博客" />

        <RadioButton
            android:id="@+id/r4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:button="@null"
            android:text="推荐" />
    </RadioGroup>

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/rg" />
///

 fragment_item.xml

 <org.com.cctest.view.XListView
               
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        
        android:id="@+id/xlistView"
        
        
        ></org.com.cctest.view.XListView>

/

listview.xml

    <TextView
        android:id="@+id/lv_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="TextView"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/lv_body"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/lv_title"
        android:text="TextView" />

    <TextView
        android:id="@+id/lv_author"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/lv_body"
        android:text="TextView" />

    <TextView
        android:id="@+id/lv_pubdata"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/lv_author"
        android:layout_alignBottom="@+id/lv_author"
        android:layout_marginLeft="44dp"
        android:layout_toRightOf="@+id/lv_author"
        android:text="TextView" />

    <TextView
        android:id="@+id/lv_pinlun"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/lv_pubdata"
        android:layout_alignBottom="@+id/lv_pubdata"
        android:layout_alignParentRight="true"
        android:layout_marginRight="36dp"
        android:text="TextView" />

//


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 UniApp 中,可以使用下拉刷新组件来实现下拉刷新数据的功能。 首先,在你的页面中添一个 `<uni-scroll-view>` 组件,用于包裹需要下拉刷新的内容。然后,给 `<uni-scroll-view>` 添 `@scrolltoupper` 事件监听器,当触发下拉刷新时会执行相应的方法。 接下来,你可以在 `data` 中定义一个变量来表示是否正在数据,比如 `isLoading`。当开始下拉刷新时,将 `isLoading` 设置为 `true`,并执行数据的逻辑。完成后,将 `isLoading` 设置为 `false`。 下面是一个简单的示例代码: ```html <template> <view> <uni-scroll-view :upper-threshold="50" @scrolltoupper="onPullDownRefresh"> <!-- 下拉刷新内容 --> <view v-if="isLoading">正在...</view> <view v-else> <!-- 展示数据 --> <view v-for="item in dataList" :key="item.id">{{ item.name }}</view> </view> </uni-scroll-view> </view> </template> <script> export default { data() { return { isLoading: false, dataList: [] }; }, methods: { onPullDownRefresh() { if (this.isLoading) { // 正在中,不重复请求 return; } this.isLoading = true; // 执行数据逻辑,比如调用接口获取数据 // 模拟异步 setTimeout(() => { this.dataList = [ { id: 1, name: '数据1' }, { id: 2, name: '数据2' }, { id: 3, name: '数据3' } ]; this.isLoading = false; }, 2000); } } }; </script> ``` 在上述代码中,`<uni-scroll-view>` 组件包裹了需要下拉刷新的内容,当触发 `@scrolltoupper` 事件时会执行 `onPullDownRefresh` 方法。在 `onPullDownRefresh` 方法中,你可以执行数据的逻辑,比如调用接口获取数据,并将状态控制变量 `isLoading` 设置为 `true`,完成后再设置为 `false`。 注意:上述示例代码中的数据逻辑只是一个简单的模拟,实际使用时你需要根据你的需求进行相应的修改。同时,你也可以根据需要对下拉刷新的样式进行自定义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值