片段类Viewpager内部列表视图 [英] Listview inside a fragment class of a Viewpager

查看:132
本文介绍了片段类Viewpager内部列表视图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个ViewPager设置3个片段类和pageadapter类。

I have a ViewPager setup with 3 fragment Classes, and a pageadapter class.

MainActivity类别

MainActivity class

package com.example.swipeview;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;

public class MainActivity extends FragmentActivity {
ViewPager viewpager;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    viewpager = (ViewPager) findViewById(R.id.viewpagers);
    com.example.swipeview.PagerAdapter padapter = new          com.example.swipeview.PagerAdapter(getSupportFragmentManager());

    viewpager.setAdapter(padapter);

}

}

PageAdapter类

PageAdapter class

 package com.example.swipeview;

 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentPagerAdapter;

 public class PagerAdapter extends FragmentPagerAdapter {

 public PagerAdapter(FragmentManager fm) {
    super(fm);
    // TODO Auto-generated constructor stub
 }

   @Override
   public Fragment getItem(int arg0) {
    // TODO Auto-generated method stub
    switch(arg0){
    case 0:
    return new FragmentOne();

    case 1:
    return new FragmentTwo();

    case 2:
    return new FragmentThree();

    default:
        break;
    }
    return null;
    }

   @Override
    public int getCount() {
    // TODO Auto-generated method stub
    return 3;


    }
    }

和我的第一个FragmentClass作为一个例子

and my first FragmentClass as an example

 package com.example.swipeview;

import com.example.swipeview.R;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class FragmentOne extends Fragment {


@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState){
    return inflater.inflate(R.layout.fragment_one_layout, container, false);

}



}//end of class

我试过我的常用方法为Activity类里面创建一个ListView但不与片段类工作。我想知道如果任何人都可以告诉我怎么code一个ListView成一个片段类。

I've tried my usual methods for creating a listview inside of an Activity class but that doesn't work with the fragment class. I was wondering if anyone could show me how to code a listview into a fragment class.

推荐答案

通过自定义适配器的一个例子(使用列表作为源):

An example with a custom adapter (using a List as source):

public class ItemsFragment extends Fragment {

    /* Must be populated later. */
    private final List<Item> items = new ArrayList<>();
    private ItemAdapter adapter;
    private ListView listView = null;



    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View layout = inflater.inflate(R.layout.fragment_items_list, container, false);
        adapter = new ItemAdapter(this.getActivity(), items);
        listView = (ListView) layout.findViewById(R.id.listview_items);
        return layout;
    }




    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Item currentItem = adapter.getItem(position);
                // (...)
            }
        });
    }

    /* (...) */

}

这篇关于片段类Viewpager内部列表视图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆