Я попробовал решение @ портфеля, это здорово. Но есть небольшая проблема: когда текущим элементом является голова или хвост, если я просто щелкаю ViewPager, а не перетаскиваю, элемент изменится на хвост или голову. И я добавил сенсорный слушатель в ViewPager, чтобы решить эту проблему.
skinPager.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
//Record the x when press down and touch up,
//to judge whether to scroll between head and tail
int x = (int) event.getX();
int y = (int) event.getY();
if(event.getAction() == MotionEvent.ACTION_DOWN)
skinPagerPressX = x;
else if(event.getAction() == MotionEvent.ACTION_UP)
skinPagerUpX = x;
return false;
}
});
Следующее является модифицированной функцией портфеля:
private void handleSetNextItem() {
final int lastPosition = skinPager.getAdapter().getCount() - 1;
//Only scroll when dragged
if(mCurrentPosition == 0 && skinPagerUpX > skinPagerPressX) {
skinPager.setCurrentItem(lastPosition, false);
} else if(mCurrentPosition == lastPosition && skinPagerUpX < skinPagerPressX) {
skinPager.setCurrentItem(0, false);
}
}
В Запустить конфигурацию
у вас может быть Android JUnit Test
, если в нем есть какие-либо новые записи конфигурации запуска, вы удалите их, а затем запустите свое приложение, которое оно запустит.
ПРИМЕЧАНИЕ. вероятно, будет решением, если вы попытались запустить тестовый пример перед добавлением правильных строк в манифест, как описано в ответе Джозефа. Если вы это сделали, удалите конфигурацию (которая будет жаловаться на то, что в ее заголовке не было указано средство запуска инструментального тестирования), а затем снова запустите ее как Android Junit Test, и она создаст действительную конфигурацию, выбрав правильный материал, который вы добавили в манифест (см. Josef '
Вероятно, вам не хватает узлов uses-library
и инструментария
в вашем AndroidManifest.xml
:
<manifest ...>
<application ...>
<!-- ... -->
<uses-library android:name="android.test.runner" />
</application>
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="your.package"
android:label="your tests label" />
</manifest>
Просто щелкните правой кнопкой мыши свой тестовый класс в среде Eclipse IDE и выберите «Запуск от имени». После этого выберите «запустить конфигурацию». который запустит окно настройки в eclipse, и вам нужно щелкнуть переключатель рядом с «Instrumentation Runner» и выбрать настроенный Instrumentation Runner из раскрывающегося списка. Теперь нажмите «Применить», а затем нажмите «Выполнить». Думаю, это решит вашу проблему.
Спасибо, Смрути
Это не в вашем коде, просто затмение немного глючит. В ваших конфигурациях запуска это может быть попытка запустить тест jUnit, но выберите «Запустить приложение», и эта ошибка исчезнет.
Проблема в том, что когда вы создавали проект, у вас был бы AVD, поэтому эта конфигурация будет отсутствовать. Мой предлагаемый способ - сначала создать AVD, а затем создать проект Android :).
Если вы уже создали проект, и если у вас мало написанного кода, я бы предложил удалить его и создать новый.
Нельзя использовать этот
в статическом методе, поэтому это невозможно напрямую. Однако, если вам нужен тип какого-либо объекта, просто вызовите GetType
и сделайте этот экземпляр
параметром, который вы должны передать, например:
public class Car {
public static void Drive(Car c) {
Console.WriteLine("Driving a {0}", c.GetType());
}
}
Это кажется плохим дизайном, хотя. Действительно ли необходимо получить тип самого экземпляра внутри его собственного статического метода? Это кажется немного странным. Почему бы не использовать метод экземпляра?
public class Car {
public void Drive() { // Remove parameter; doesn't need to be static.
Console.WriteLine("Driving a {0}", this.GetType());
}
}
-121--789664- Математическая библиотека DotNumerics является свободным/открытым проектом, написанным на C # и содержащим перевод Lapack, Blas и Eispack на C #.
-121--2403014-Одна вещь, которую я заметил в этой дискуссии, которая может привести некоторых людей в негодность, заключается в том, что вы должны убедиться, что элемент «instrumentation» в вашем манифесте является потомком «manifest», а не «application». (Приведенные здесь примеры верны, но их легко смешать.)
http://developer.android.com/guide/topics/manifest/instrumentation-element.html
Если вы помещаете инструментальные средства в приложение, они не будут подхвачены, и ваш выбор в плагине Eclipse ADT для инструментального питателя может быть пустым. (Но ошибка не выдается или не отображается и т.д.)