Если Вы не настроены против выполнения его, можно импортировать блок J# "vjslib.dll" и использовать Arrays.equals (байт [], байт []) метод ...
не обвиняют меня, если кто-то смеется над Вами хотя...
РЕДАКТИРОВАНИЕ: Поскольку, что мало это стоит, я использовал Отражатель для разборки кода для этого, и здесь - то, на что это похоже:
public static bool equals(sbyte[] a1, sbyte[] a2)
{
if (a1 == a2)
{
return true;
}
if ((a1 != null) && (a2 != null))
{
if (a1.Length != a2.Length)
{
return false;
}
for (int i = 0; i < a1.Length; i++)
{
if (a1[i] != a2[i])
{
return false;
}
}
return true;
}
return false;
}
Одним из решений является реализация OnScrollListener
и внесение изменений (например, добавление элементов и т. Д.) В ListAdapter
в удобном состоянии в его метод onScroll
.
Следующий ListActivity
показывает список целых чисел, начиная с 40, добавляя элементы, когда пользователь прокручивает список до конца.
public class Test extends ListActivity implements OnScrollListener {
Aleph0 adapter = new Aleph0();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setListAdapter(adapter);
getListView().setOnScrollListener(this);
}
public void onScroll(AbsListView view,
int firstVisible, int visibleCount, int totalCount) {
boolean loadMore = /* maybe add a padding */
firstVisible + visibleCount >= totalCount;
if(loadMore) {
adapter.count += visibleCount; // or any other amount
adapter.notifyDataSetChanged();
}
}
public void onScrollStateChanged(AbsListView v, int s) { }
class Aleph0 extends BaseAdapter {
int count = 40; /* starting amount */
public int getCount() { return count; }
public Object getItem(int pos) { return pos; }
public long getItemId(int pos) { return pos; }
public View getView(int pos, View v, ViewGroup p) {
TextView view = new TextView(Test.this);
view.setText("entry " + pos);
return view;
}
}
}
Очевидно, вам следует использовать отдельные потоки для длительных действий (таких как загрузка веб-данных) и могут захотеть указать прогресс в последнем элементе списка (как это делают приложения Market или Gmail).
Вы можете определить конец списка с помощью onScrollListener , рабочий код представлен ниже:
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if (view.getAdapter() != null && ((firstVisibleItem + visibleItemCount) >= totalItemCount) && totalItemCount != mPrevTotalItemCount) {
Log.v(TAG, "onListEnd, extending list");
mPrevTotalItemCount = totalItemCount;
mAdapter.addMoreData();
}
}
Другой способ сделать это (внутри адаптера):
public View getView(int pos, View v, ViewGroup p) {
if(pos==getCount()-1){
addMoreData(); //should be asynctask or thread
}
return view;
}
Имейте в виду, что это метод будет вызываться много раз, поэтому вам нужно добавить еще одно условие для блокировки нескольких вызовов addMoreData ()
.
Когда вы добавляете все элементы в список, вызовите notifyDataSetChanged () внутри вашего адаптера, чтобы обновить представление (он должен запускаться в потоке пользовательского интерфейса - runOnUiThread )