Не уверен, что это то, что вы ищете, но в основном этот код создает подмножество объектов на основе основного набора данных, который вы используете для заполнения списка. Это выглядит примерно так:
import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
public class MainActivity extends ListActivity {
// Constant for limiting array to match desired number of values in column
private final int NUMBER_OF_ITEMS_IN_COLUMN = 4;
// Index for starting point of array subset
private int mStartingIndex = 0;
// Data set array for list
private String[] mDataSet = new String[]{
"One", "Two", "Three", "Four", "Five",
"Six","Seven","Eight", "Nine", "Ten",
"Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen",
"Sixteen", "Seventeen", "Eightteen", "Nineteen", "Twenty",
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
changeListViewModel(0);
}
private void changeListViewModel(int startingIndex) {
// Check staring index meets certain criteria
if(startingIndex < 0)
startingIndex = 0;
else if(startingIndex >= mDataSet.length)
startingIndex -= NUMBER_OF_ITEMS_IN_COLUMN;
// Set starting and ending index
mStartingIndex = startingIndex;
int endingIndex = startingIndex + NUMBER_OF_ITEMS_IN_COLUMN;
// Make sure ending index isn't outside the bounds of the data set array
if(endingIndex > mDataSet.length) endingIndex = mDataSet.length;
// Create subset and set listview adapter
String[] subSet = getDataSubset(startingIndex, endingIndex);
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, subSet));
}
private String[] getDataSubset(int startingIndex, int endingIndex){
String[] toRet = new String[endingIndex - startingIndex];
int index = -1;
for(int x = startingIndex; x < endingIndex; x++)
toRet[++index] = mDataSet[x];
return toRet;
}
/*
* Called from layout main.xml file
*/
public void backButtonClicked(View v) {
changeListViewModel(mStartingIndex - NUMBER_OF_ITEMS_IN_COLUMN);
}
/*
* Called from layout main.xml file
*/
public void nextButtonClicked(View v) {
changeListViewModel(mStartingIndex + NUMBER_OF_ITEMS_IN_COLUMN);
}
}
Это довольно просто, но оно должно быть в состоянии начать. Кроме того, используя что-то подобное, вы также можете связать представление списка с базой данных SQLite, имея класс базы данных, который возвращает список объектов в качестве подмножества для просмотра списка.
Вы можете скачать исходный код здесь: Скачать исходный код