Каждый раз, когда вы добавляете объект в ArrayList, убедитесь, что вы добавили новый объект, а не уже использованный объект. Случается, что при добавлении одной и той же копии объекта этот объект добавляется в разные позиции в ArrayList. И когда вы вносите изменения в один, поскольку одна и та же копия добавляется снова и снова, все копии становятся затронутыми. Например, предположим, что у вас есть ArrayList:
ArrayList<Card> list = new ArrayList<Card>();
Card c = new Card();
Теперь, если вы добавите эту карту c в список, она не будет добавлена никаких проблем. Он будет сохранен в месте 0. Но когда вы сохраните ту же Карту c в списке, она будет сохранена в местоположении 1. Так что помните, что вы добавили один и тот же 1 объект в два разных местоположения в списке. Теперь, если вы внесете изменения в объект Card c, объекты в списке в местах 0 и 1 также отражают это изменение, потому что они являются одним и тем же объектом.
Одним из решений было бы сделать конструктор класса Card, который принимает другой объект карты. Затем в этом конструкторе вы можете установить такие свойства следующим образом:
public Card(Card c){
this.property1 = c.getProperty1();
this.property2 = c.getProperty2();
... //add all the properties that you have in this class Card this way
}
И скажем, что у вас есть одна и та же 1 копия Карты, поэтому во время добавления нового объекта вы можете сделать это:
list.add(new Card(nameOfTheCardObjectThatYouWantADifferentCopyOf));
Я настоятельно рекомендовал бы плагин Цикла jQuery. Это может сделать больше, чем Вы ищете в этом случае, но это хорошо структурировало и легкий установить. Существует также легкая версия под названием Цикл jQuery, Облегченный, который просто поддерживает, исчезают переходы.
Можно использовать a div
и img
, как так:
<div id="featureImgContainer">
<img src="/images/image-1.jpg" id="featureImg" />
</div>
В Вашем JavaScript делают что-то вроде этого (псевдоjQuery):
function rotateImage(newImage) {
var oldImage = $("#featureImg").image();
$("#featureImgContainer").css({backgroundImage: "url('" + oldImage + "')"}); // TODO Escape URL
$("#featureImg").image(newImage).opacity(0).fadeIn();
}
В основном мы делаем div
фон "старое" изображение, и img
новый. Мы устанавливаем img
к 0 непрозрачности, и постепенно появляются он, таким образом, появляется, как будто старое изображение исчезает в новое. После исчезновения в, div
больше не показывается.
Заботьтесь для установки CSS соответственно для установки ширины/высоты div
и фоновое положение в соответствующих случаях.
можно остаться с ядром jQuery и иметь цикл, поднимают z-индекс..
это может быть сделано очень простым способом...
Я также нашел это расширение jQuery: http://www.linein.org/blog/2008/01/10/roate-image-using-jquery-with-plugin/
Это, кажется, делает это вполне приятно, хотя много кода для не слишком много.
Править: Я также нашел Ползунок Nivo, который я использовал довольно часто, и работал вполне хорошо. Это также имеет способность иметь "навигацию" и предыдущие/следующие кнопки. Довольно удобный.