列表视图无法正确填充/不可见

k

我有一个使用自定义列表适配器的活动。如果填充列表视图的arraylist为空,则向用户显示一个文本框,否则该文本框变为不可见,并显示列表视图。每当arraylist为空时,都会出现该文本框,但是如果不是,则出现空白屏幕。我不确定这是因为我的列表视图不可见还是因为未正确填充它。昨天这个工作很好,但是从那时起我对班级进行了很多更改,而且我不确定是哪个导致了此问题。在过去的几个小时中,我一直在尝试遵循该代码来解决此问题,我注意到,如果我loggetView()适配器的方法,它不会显示,如果我在构造函数中添加它,它会很好显示。我还确保使用来调用适配器并在if语句中输入适当的条件log我希望你们中的一个能够发现我所不能解决的问题。

调用适配器的方法:

 private void PopulateLister(ArrayList<BetDisplayer> listwriterr) {
    Log.d("POPULATING", listwriterr.toString());
    if (listwriterr.isEmpty()) {
        TextView emptybet = (TextView) findViewById(R.id.nobetstxtbox);
       // emptybet.setText("None of your bets have been settled yet.");
        emptybet.setVisibility(View.VISIBLE);
        ListView listView = (ListView) findViewById(R.id.betslistviews);
        listView.setVisibility(View.GONE);
    }
    else if (listwriterr.size() > 0){
        TextView emptybet = (TextView) findViewById(R.id.nobetstxtbox);
        emptybet.setVisibility(View.GONE);
        ListView listView = (ListView) findViewById(R.id.betslistviews);
        listView.setVisibility(View.VISIBLE);
        if (listwriterr.get(0).getStatus().equals("open")){
            ArrayAdapter<BetDisplayer> adapter = new MyListAdapter1();
            listView.setAdapter(adapter);
        }
        else {
            ArrayAdapter<BetDisplayer> adapter = new MyListAdapter2();
            listView.setAdapter(adapter);
        }



    }
}

活动的XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linearLayout23"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:orientation="vertical">
    <!-- Main ListView
         Always give id value as list(@android:id/list)
    -->
    <fragment
        android:id="@+id/fragment"
        android:name="com.example.albert.betterapp.menu"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        tools:layout="@layout/fragment_menu" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="40dp"
        android:layout_gravity="center"
        android:orientation="horizontal"
        android:weightSum="100">

        <LinearLayout
            android:id="@+id/openbetslayout"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="49"
            android:tag=""
            android:background="@drawable/bettypeselector"
            android:clickable="true">

            <TextView
                android:id="@+id/openbetstxtview"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_gravity="center"
                android:clickable="false"
                android:gravity="center"
                android:text="Open Bets"
                android:textColor="#B4B5AE"
                android:textStyle="bold" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:background="@drawable/seperator">

        </LinearLayout>

        <LinearLayout
            android:id="@+id/closedbetslayout"
            android:layout_width="0dp"
            android:layout_height="fill_parent"
            android:layout_weight="49"
            android:tag=""
            android:background="@drawable/bettypeselector"
            android:clickable="true">

            <TextView
                android:id="@+id/settledbetstxtview"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_gravity="center"
                android:clickable="false"
                android:gravity="center"
                android:text="Settled Bets"
                android:textColor="#B4B5AE"
                android:textStyle="bold" />
        </LinearLayout>
    </LinearLayout>


    <android.support.v4.widget.SwipeRefreshLayout
        android:layout_width="fill_parent"
        android:id = "@+id/displayallbetsrefresh"
        android:layout_height="wrap_content">
        <TextView
        android:layout_width="fill_parent"
        android:layout_height="200dp"
        android:id="@+id/nobetstxtbox"
        android:text="You currently don't have any open bets saved."
        android:textStyle="bold"
        android:layout_gravity="center"
        android:gravity="center"
        android:visibility="gone"
        android:textSize="17sp"
        android:textColor="#067103"/>
        <ListView
            android:id="@+id/betslistviews"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@color/betcolor"></ListView>
    </android.support.v4.widget.SwipeRefreshLayout>


</LinearLayout>

适配器 :

 private class MyListAdapter1 extends ArrayAdapter<BetDisplayer> {
    public MyListAdapter1() {
        super(DisplayAllBets.this, R.layout.activity_singletotalbet, openbetsarray);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        Log.d("TESTING", "123123123");
        itemView = convertView;
        if (itemView == null) {
            itemView = getLayoutInflater().inflate(R.layout.activity_singletotalbet, parent, false);
        }
        Button v = (Button) itemView.findViewById(R.id.detailsbutton);
        BetDisplayer currentwriter = openbetsarray.get(position);
        Log.d("TESTING", currentwriter.getSelections());
        Log.d("TESTING2", currentwriter.getSelections());
        String selections = currentwriter.getSelections();
        int numberofselections = 0;

        for (int i = 0; i < selections.length(); i++) {
            if (selections.charAt(i) == '/') {
                numberofselections++;
            }
        }
        if (numberofselections == 1) {
            TextView descriptor = (TextView) itemView.findViewById(R.id.no);
            descriptor.setText("Single");
        } else if (numberofselections == 2) {
            TextView descriptor = (TextView) itemView.findViewById(R.id.no);
            descriptor.setText("Double");
        } else if (numberofselections == 3) {
            TextView descriptor = (TextView) itemView.findViewById(R.id.no);
            descriptor.setText("Treble");
        } else {
            TextView descriptor = (TextView) itemView.findViewById(R.id.no);
            descriptor.setText("Accumulator" + "(" + numberofselections + ")");
        }
        TextView status = (TextView) itemView.findViewById(R.id.status);
        status.setText(currentwriter.getStatus());
        Log.d("ERRORDEBUG", currentwriter.toString());
        if (status.getText().toString().equals("open")) {
            TextView winnings = (TextView) itemView.findViewById(R.id.winnings);
            winnings.setText("-");
            /*LinearLayout displaylayout = (LinearLayout) itemView.findViewById(R.id.displaylayout);
            displaylayout.setBackgroundColor(Color.parseColor("#FFFFFF"));
            Button b = (Button) itemView.findViewById(R.id.detailsbutton);
            b.setBackgroundResource(R.drawable.btnback);*/
        }
        else if (status.getText().toString().equals("lost")) {
            TextView winnings = (TextView) itemView.findViewById(R.id.winnings);
            winnings.setText("0");
            /*LinearLayout displaylayout = (LinearLayout) itemView.findViewById(R.id.displaylayout);
            Button b = (Button) itemView.findViewById(R.id.detailsbutton);
            b.setBackgroundResource(R.drawable.btnbacklost);
            displaylayout.setBackgroundResource(R.drawable.lost);*/
        }
        else {
            TextView winnings = (TextView) itemView.findViewById(R.id.winnings);
            winnings.setText(Integer.toString(currentwriter.getReturns()));
          /*  Button b = (Button) itemView.findViewById(R.id.detailsbutton);
            b.setBackgroundResource(R.drawable.btnback);
            LinearLayout displaylayout = (LinearLayout) itemView.findViewById(R.id.displaylayout);
            displaylayout.setBackgroundResource(R.drawable.won);*/
        }
        TextView winningss = (TextView) itemView.findViewById(R.id.winningss);
        winningss.setText(Integer.toString(currentwriter.getReturns()));
        TextView stakes = (TextView) itemView.findViewById(R.id.stakes);
        stakes.setText(Integer.toString(currentwriter.getStake()));
        TextView tokens = (TextView) itemView.findViewById(R.id.tokens);
        tokens.setText(currentwriter.getId().substring(0,10));
        TextView teams = (TextView) itemView.findViewById(R.id.teams);
        TextView finalteams = (TextView) itemView.findViewById(R.id.actteams);
        String userselectionssetter = currentwriter.getUserselections();
        String actteamssetter = currentwriter.getActualselections();
        teams.setText(userselectionssetter);
        finalteams.setText(actteamssetter);
        return itemView;


    }
}
刀片编码器

您的SwipeRefreshLayout具有2个子视图,如果我没记错的话,这会导致显示问题。您应该有类似这样的东西:

<SwipeRefreshLayout>
    <FrameLayout>
        <ScrollView>
            <TextView/>
        </ScrollView>
        <ListView/>
    </FrameLayout>
</SwipeRefreshLayout>

当显示列表或文本时,这是拉动刷新工作的唯一方法,然后还必须重写canChildScrollUp()。祝你好运。

否则,将文本放在SwipeRefreshLayout之外,仅将ListView作为其唯一子项放置,但是当显示文本时,将不会有滑动刷新的可能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在可见和不可见之间切换填充的列表视图

来自分类Dev

即使正确编码,我的底部导航视图也不可见,

来自分类Dev

图片在列表视图中不可见

来自分类Dev

卡视图不可见

来自分类Dev

卡视图不可见

来自分类Dev

卡视图不可见

来自分类Dev

将不可见复选框设置为在列表视图中可见

来自分类Dev

RecyclerView列表不可见

来自分类Dev

删除导航栏(不可见)填充

来自分类Dev

当一些可见/不可见时,调整列表视图中另一列witdh的大小

来自分类Dev

自定义视图不可见

来自分类Dev

XIB子视图不可见

来自分类Dev

CAGradientLayer导致子视图不可见

来自分类Dev

CAGradientLayer导致子视图不可见

来自分类Dev

相对布局中不可见的视图

来自分类Dev

CoordinatorLayout 在设计视图中不可见

来自分类Dev

文档在嵌入视图中不可见

来自分类Dev

如果容器不可见,则jQuery手风琴无法填充容器的高度

来自分类Dev

自定义列表视图中的2个按钮应该不可见

来自分类Dev

我的列表视图从Android中的所有行的不可见删除按钮

来自分类Dev

如何将列表视图的第一行设置为不可见?

来自分类Dev

自定义列表视图中的2个按钮应该不可见

来自分类Dev

如何禁用列表视图中的所有元素(以及当前在屏幕上不可见的元素)?

来自分类Dev

下拉列表在Firefox中不可见

来自分类Dev

打印对象列表时值不可见

来自分类Dev

列表值对BaseAdapter类不可见

来自分类Dev

列表项在片段中不可见

来自分类Dev

无法删除/不可见的.txt文件

来自分类Dev

默认菜单在后端不可见,前端也无法正确加载