Limit a listview to 25 items

妖精的绣舞 提交于 2019-12-22 12:45:13

问题


I am displaying a listview programmiclly using the following codes: Below is how the listview is displayed programmatically:

 messagesList = (ListView) findViewById(R.id.listMessages);
            messageAdapter = new MessageAdapter(this);

I would want to limit the list to 25 items, and where it is not infinite.

Below is the layout.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/white_wallpaper"
                >

    <ListView
        android:id="@+id/listMessages"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/divider"
        android:divider="@null"
        android:dividerHeight="0dp"
        android:inputType="text|textNoSuggestions"
        android:padding="0dip"
        android:stackFromBottom="true"
        android:transcriptMode="alwaysScroll"
        tools:listitem="@layout/message_left" />

    <RelativeLayout 
        android:id="@+id/divider"
        android:layout_width="fill_parent"
        android:layout_height="1dip"
        android:background="@color/off_white"
        android:layout_above="@+id/relSendMessage" />

    <RelativeLayout
            android:id="@+id/relSendMessage"
            android:layout_width="wrap_content"
            android:layout_height="48dp"
            android:background="#ddd"
            android:paddingLeft="10dp"
            android:layout_alignParentBottom="true">

        <EditText
            android:id="@+id/messageBodyField"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_alignBottom="@+id/sendButton"
            android:layout_alignTop="@+id/sendButton"
            android:layout_marginBottom="-4dp"
            android:layout_marginRight="10dp"
            android:inputType="text|textNoSuggestions"
            android:layout_toLeftOf="@+id/sendButton"
            android:background="@android:color/white"
            android:hint="@string/message_elipses"
            android:textColor="#000000"
            android:textColorLink="#adefda"
            android:textSize="14sp" />

        <Button
                android:id="@+id/sendButton"
                android:layout_width="72dp"
                android:layout_height="match_parent"
                android:layout_alignParentRight="true"
                android:layout_margin="4dp"
                android:background="@drawable/button_send" />
    </RelativeLayout>

    <Button
        android:id="@+id/iSchedule"
        android:layout_width="120dp"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:alpha="0.7"
        android:background="#C11B17"
        android:text="Schedule"
        android:textColor="#f2f2f2"
        android:textSize="20sp"
        android:textStyle="bold"
        android:typeface="serif" />

</RelativeLayout>

I have been suggested the following, but I am not sure how to integrate it within the above code:

@Override
public int getCount() {
    return 25;
}

Thanks in advance, and for any clarification, let me know.

Update

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.messaging);

        feedBack = new FeedbackDialog(this, "ID");



        final TextView iSchedule = (TextView) this.findViewById(R.id.iSchedule);
        iSchedule.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
               MessagingActivity1.this.startActivity(new Intent(MessagingActivity1.this, ScheduleMatchOptionActivity.class));
            }
        });

        Parse.initialize(this, "ID", "ID");

        bindService(new Intent(this, MessageService.class), serviceConnection,
                BIND_AUTO_CREATE);
        Intent intent = getIntent();
        recipientId = intent.getStringExtra("RECIPIENT_ID");
        currentUserId = ParseUser.getCurrentUser().getObjectId();
        messageAdapter = new MessageAdapter(this);

        @Override
        public int getCount() {
    messagesList.setAdapter(messageAdapter);
            return 25;
        }

        messagesList = (ListView) findViewById(R.id.listMessages);


        populateMessageHistory();
        messageBodyField = (EditText) findViewById(R.id.messageBodyField);
        findViewById(R.id.sendButton).setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        sendMessage();
                    }
                });
    }

However, I receive the following error in the live @override it says Syntax error on token(s), misplaced construct(s) in the public int get count "Syntax error on token(s), misplaced construct(s)" In the return 25 - Void methods cannot return a value


回答1:


You want to use that code (or similar) to override the default getCount method in ListAdapter: http://developer.android.com/reference/android/widget/ListAdapter.html

You can check an example in: http://www.vogella.com/tutorials/AndroidListView/article.html#listview_listviewexample




回答2:


Hey you want to get list with limit, you have two option 1. You set array list size, 2. You can set, when you get data put for loop and set limit



来源:https://stackoverflow.com/questions/26318120/limit-a-listview-to-25-items

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!