1) Вы будете использовать notifyItemInserted(position);
или notifyItemRemoved(position);
вместо notifyDataSetChanged()
для анимации. 2) Вы можете просто вручную исправить вашу проблему - используя
public void move(int from, int to){
Track track = mArray.remove(from);
mArray.add(to, track);
notifyItemMoved(from, to);
ViewHolder fromHolder = (ViewHolder) mRecyclerView.findViewHolderForPosition(from);
ViewHolder toHolder = (ViewHolder) mRecyclerView.findViewHolderForPosition(to);
Tag fromTag = fromHolder.itemView.getTag();
fromHolder.itemView.setTag(toHolder.itemView.getTag());
toHolder.itemView.setTag(fromTag);
}
Вы можете использовать fgetws , который читает 16-битные символы. Ваш файл находится в порядке байтов с прямым порядком байтов. Поскольку машины x86 также имеют прямой порядок байтов, вы сможете без проблем обрабатывать файл. Если вы хотите сделать вывод, используйте fwprintf .
Кроме того, я согласен, что дополнительная информация может быть полезной. Например, вы можете использовать библиотеку, которая абстрагирует часть этого.
Поскольку вы спешите, используйте ifstream в двоичном режиме и делайте свою работу. У меня были те же проблемы с тобой, и это спасло мне день. (это не рекомендуемое решение, конечно, это просто взлом)
ifstream file;
file.open("k:/test.txt", ifstream::in|ifstream::binary);
wchar_t buffer[2048];
file.seekg(2);
file.read((char*)buffer, line_length);
wprintf(L"%s\n", buffer);
file.close();
Что бы это ни стоило, я думаю, я читал, что вам нужно использовать функцию Microsoft, которая позволяет вам указать кодировку.
http://msdn.microsoft.com/en -us / library / z5hh6ee9 (VS.80) .aspx
FFFE - это просто начальная спецификация (метка порядка байтов). Просто прочтите файл, как обычно, но в широкий буфер символов.