listView显示不出来

Mark_ZN 2016-05-20 11:11:49
看起来特别简单的一个PullToRefreshListView,不知道为什么出不来数据,求解


//这是在一个fragment里面的下拉刷新listview
//java代码
@BindView(R.id.word_pullListView)
PullToRefreshListView listView;

nums = new ArrayList<>();
for (int i = 0; i < 20; i++) {
nums.add(i + "");
}
ArrayAdapter adapter = new ArrayAdapter<>(getContext(), android.R.layout.simple_list_item_1, android.R.id.text1, nums);
listView.setAdapter(adapter);

//布局代码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="@color/color_blue"
android:layout_width="match_parent"
android:layout_height="match_parent">

<com.handmark.pulltorefresh.library.PullToRefreshListView
android:id="@+id/word_pullListView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>

这里我设置了蓝色背景,但是出来的效果是什么都没有.
...全文
814 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mark_ZN 2016-05-20
  • 打赏
  • 举报
回复
确实可能是viewpager的问题,我另起一个activity就可以显示了,我再看看 谢谢大神
Mark_ZN 2016-05-20
  • 打赏
  • 举报
回复
//这是将fragment设置进入pageradapter里面的代码 private List<Fragment> fragments = new ArrayList<>(); WordCollectFragment fragment1 = BaseFragment.newInstance(WordCollectFragment.class,null); fragments.add(fragment1); PictureCollectFragment fragment2 = BaseFragment.newInstance(PictureCollectFragment.class,null); fragments.add(fragment2); VideoCollectFragment fragment3 = BaseFragment.newInstance(VideoCollectFragment.class,null); fragments.add(fragment3); CollectPageAdapter pageAdapter = new CollectPageAdapter(getSupportFragmentManager(),this,fragments); viewPager.setAdapter(pageAdapter); tabLayout.setSelectedTabIndicatorColor(Color.BLUE); tabLayout.setTabMode(TabLayout.MODE_FIXED); tabLayout.setupWithViewPager(viewPager);
ling9400 2016-05-20
  • 打赏
  • 举报
回复
引用 7 楼 Mark_ZN 的回复:
//这是用于收藏的fragment public class WordCollectFragment extends BaseFragment { @BindView(R.id.sc_wz_lv) ListView listView; private List<DetailTable> detailTable = new ArrayList<>(); private List<String> nums; @Override protected int getLayoutId() { return R.layout.frag_collect_essay_layout; } @Override protected void initViews() { nums = new ArrayList<>(); for (int i = 0; i < 20; i++) { nums.add(i + ""); } ArrayAdapter adapter = new ArrayAdapter<>(getContext(), android.R.layout.simple_list_item_1, android.R.id.text1, nums); listView.setAdapter(adapter); } } //这是fragment基类 public abstract class BaseFragment extends Fragment { /** * 构造BaseFragment子类实例对象,子类务必实现空参构造方法 * * @param subFragmentCls 子类Fragment类型 * @param params 参数,以Map的形式传递,可空 * @param <T> * @return */ public static <T extends BaseFragment> T newInstance(Class<?> subFragmentCls, Map<String, String> params) { try { Constructor constructor = subFragmentCls.getConstructor(new Class[]{}); T fragment = (T) constructor.newInstance(new Object[]{}); Bundle bundle = new Bundle(); if (params != null && params.size() > 0) { for (String key : params.keySet()) { String value = params.get(key); bundle.putString(key, value); } } fragment.setArguments(bundle); return fragment; } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (java.lang.InstantiationException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } return null; } @Override public void onAttach(Context context) { super.onAttach(context); // 注册当前Fragment为订阅者 EventBus.getDefault().register(this); // 获取参数,子类实现 getReqParams(getArguments()); } /** * 获取参数,在子类中定义逻辑 * * @param bundle */ protected void getReqParams(Bundle bundle) { } /** * 创建视图 * * @param inflater * @param container * @param savedInstanceState * @return */ @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { // 加载视图 rootView = inflater.inflate(getLayoutId(), container, false); return rootView; } private View rootView; protected View getRootView() { return this.rootView; } /** * 视图加载完毕 * * @param view * @param savedInstanceState */ @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); // 绑定视图和事件 ButterKnife.bind(this, view); // 初始化视图,子类实现 initViews(); // 初始化视图 loadData(); } /** * 销毁视图 */ @Override public void onDestroyView() { super.onDestroyView(); } @Override public void onDestroy() { super.onDestroy(); // 取消注册 EventBus.getDefault().unregister(this); } @Subscribe(threadMode = ThreadMode.MainThread) public void onGetResult(EventMessage message) { if (message == null) { return; } // 是否为Event消息 if (message instanceof EventMessage) { BaseFragment.this.postEventResult((EventMessage) message); } // 其他类型消息 else { BaseFragment.this.postOtherResult(message); } } // 获取布局,子类实现逻辑 protected abstract int getLayoutId(); // 初始化视图,此方法调用前,视图已经初始化 protected void initViews() { } // 加载所需数据,子类实现逻辑 protected void loadData() { } // 传递EventBus事件类型结果,子类实现逻辑 protected void postEventResult(@NonNull EventMessage message) { } // 传送其他结果,子类实现逻辑 protected void postOtherResult(@NonNull Object message) { } }
我也是醉了,你应该是viewPager的问题,不信你先把这个Fragment放在一个唯一的页面里面,而不是和viewPager嵌套,这样应该不会有问题的,我觉得应该是你设置viewPager的问题。
Mark_ZN 2016-05-20
  • 打赏
  • 举报
回复
在一开始我是用的getActivity作为上下文传入的,之后才改成getcontext,而且一开始也没有加R.id.text1这个参数,现在我又试了一下 依然没有效果
Mark_ZN 2016-05-20
  • 打赏
  • 举报
回复
//这是用于收藏的fragment public class WordCollectFragment extends BaseFragment { @BindView(R.id.sc_wz_lv) ListView listView; private List<DetailTable> detailTable = new ArrayList<>(); private List<String> nums; @Override protected int getLayoutId() { return R.layout.frag_collect_essay_layout; } @Override protected void initViews() { nums = new ArrayList<>(); for (int i = 0; i < 20; i++) { nums.add(i + ""); } ArrayAdapter adapter = new ArrayAdapter<>(getContext(), android.R.layout.simple_list_item_1, android.R.id.text1, nums); listView.setAdapter(adapter); } } //这是fragment基类 public abstract class BaseFragment extends Fragment { /** * 构造BaseFragment子类实例对象,子类务必实现空参构造方法 * * @param subFragmentCls 子类Fragment类型 * @param params 参数,以Map的形式传递,可空 * @param <T> * @return */ public static <T extends BaseFragment> T newInstance(Class<?> subFragmentCls, Map<String, String> params) { try { Constructor constructor = subFragmentCls.getConstructor(new Class[]{}); T fragment = (T) constructor.newInstance(new Object[]{}); Bundle bundle = new Bundle(); if (params != null && params.size() > 0) { for (String key : params.keySet()) { String value = params.get(key); bundle.putString(key, value); } } fragment.setArguments(bundle); return fragment; } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (java.lang.InstantiationException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } return null; } @Override public void onAttach(Context context) { super.onAttach(context); // 注册当前Fragment为订阅者 EventBus.getDefault().register(this); // 获取参数,子类实现 getReqParams(getArguments()); } /** * 获取参数,在子类中定义逻辑 * * @param bundle */ protected void getReqParams(Bundle bundle) { } /** * 创建视图 * * @param inflater * @param container * @param savedInstanceState * @return */ @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { // 加载视图 rootView = inflater.inflate(getLayoutId(), container, false); return rootView; } private View rootView; protected View getRootView() { return this.rootView; } /** * 视图加载完毕 * * @param view * @param savedInstanceState */ @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); // 绑定视图和事件 ButterKnife.bind(this, view); // 初始化视图,子类实现 initViews(); // 初始化视图 loadData(); } /** * 销毁视图 */ @Override public void onDestroyView() { super.onDestroyView(); } @Override public void onDestroy() { super.onDestroy(); // 取消注册 EventBus.getDefault().unregister(this); } @Subscribe(threadMode = ThreadMode.MainThread) public void onGetResult(EventMessage message) { if (message == null) { return; } // 是否为Event消息 if (message instanceof EventMessage) { BaseFragment.this.postEventResult((EventMessage) message); } // 其他类型消息 else { BaseFragment.this.postOtherResult(message); } } // 获取布局,子类实现逻辑 protected abstract int getLayoutId(); // 初始化视图,此方法调用前,视图已经初始化 protected void initViews() { } // 加载所需数据,子类实现逻辑 protected void loadData() { } // 传递EventBus事件类型结果,子类实现逻辑 protected void postEventResult(@NonNull EventMessage message) { } // 传送其他结果,子类实现逻辑 protected void postOtherResult(@NonNull Object message) { } }
ling9400 2016-05-20
  • 打赏
  • 举报
回复
引用 3 楼 Mark_ZN 的回复:
效果一直是这样,也没有报错
你的这个是用viewPager做的吧!你确定你设置了viewPager的Adapter 和页面吗?
ling9400 2016-05-20
  • 打赏
  • 举报
回复
还有你的adapter 是不是写的有问题?我觉得你写那个R.id.text1应该是没必要了,直接ArrayAdapter<String> adapter = new ArrayAdapter<String>(context,android.R.layout.simple_list_item_1,num);就可以了,还有我不知道你的框架是怎么弄的,但我知道在fragment中应该是用getActivtiy来获取context的,而不是用getContext()吧!
Mark_ZN 2016-05-20
  • 打赏
  • 举报
回复
我去 图片有点大 sorry
Mark_ZN 2016-05-20
  • 打赏
  • 举报
回复

效果一直是这样,也没有报错
ling9400 2016-05-20
  • 打赏
  • 举报
回复
蓝色背景也没有?不可能吧?
Mark_ZN 2016-05-20
  • 打赏
  • 举报
回复
第一次论坛发帖求大神帮忙

80,490

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧