私は簡単な質問がありますが、解決できないようです。リストビュー項目を与えるカスタム配列アダプターなしのタグ
私はDragSortListViewを使用しています。私は、各listview-itemに元の場所のタグを付けたいと思います。ユーザーが並べ替えを完了すると、元のID(たとえば、ユーザーが最初の項目を最後の場所に移動した場合は2,3,4,1)の文字列を返します。アイテムが削除された場合は、オリジナルIDも知りたいと思います。
ここに私のコードです。
DragSortListView mainListView = (DragSortListView) findViewById(R.id.list_pages);
String[] names = settings.getString("pages", "Error,error").split(",");
ArrayList<String> list = new ArrayList<String>(Arrays.asList(names));
adapter = new ArrayAdapter<String>(getApplicationContext(), R.layout.row, list);
mainListView.setAdapter(adapter);
DragSortController controller = new DragSortController(mainListView);
...
ここで、すべてのアイテムをループして元のIDを持つタグを付けた方がよいと思っていました。私は、しかし、このリストビューでは、アダプターが設定されているにもかかわらず、空のように見えるこの
for (int i = 0; i < mainListView.getCount(); i++)
{
View v = mainListView.getChildAt(i);
TextView tx = (TextView) v.findViewById(R.id.text);
tx.setTag(i);
}
のようなものを使用してアイテムをループにしようとしています。
カスタムArrayAdapterを使用することはできません。アイテムをドロップまたはスワイプしたときにアプリケーションがクラッシュするためです。
追加情報: リストビューは、BroadcastReceiverを使用してサービスによってデータが返されたときに設定されます。私はこれに影響を与えるとは思わないが、あなたは決して知らない。
私の質問:
- 私は後でそれにアクセスできるように、私は、各リスト項目の元の位置を保存するにはどうすればよいですか?
ありがとうございます!
本当に便利な答え、ありがとうアフマド:それが動作するかどうか、あなたは
ListView
にOnItemClickListener
を設定し、これを行うことができ、これをテストするには!これは別のアダプタなので、私の 'setDropListener()'と 'setRemoveListener()'はまだ変更されていますが、私はそれを理解します。すぐに私はこれを完全なものとしてマークします:)もう一度ありがとう! –
完了!この答えは完璧でした。ありがとう! –