Scrolling in CursorAdapter leads to crash application
<p>I need to get id of item that had been clicking. So in bindView I set id to viewHolder via holder.layout.setTag(id) and in onClick I get this value via view.getTag. This code work fine when I just run it but when I start scrolling it on a few items app crash and in log I can see ClassCastException javaLanString in bindView. So, without those setTag and getTag code work perfect. 
In a few hours I try to figure out why I get ClassCastException but I didn't find answer. Can you have ideas?</p>

<pre><code>@Override
public void bindView(View view, Context context, Cursor cursor) {
    ViewHolder holder = (ViewHolder) view.getTag();
    String value = cursor.getString(itemId);
    Log.i("MINE", value);
    holder.layout.setTag(value);
    holder.name.setText(cursor.getString(itemName));
    holder.country.setText(cursor.getString(itemCountry));

 @Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
    View view = inflater.inflate(com.home.R.layout.item_list_row,
            parent, false); 
    ViewHolder holder = new ViewHolder(
            (TextView) view.findViewById(com.home.R.id.item_row_name),
            (TextView) view.findViewById(com.home.R.id.item_row_population),
            (TextView) view.findViewById(com.home.R.id.item_row_country), 
            (ImageView) view.findViewById(com.home.R.id.icon), 
            (View) view.findViewById(R.id.row_item));
    view.setTag(holder);
    view.setOnClickListener(this);
    return view;
}

 private static final class ViewHolder {
    final TextView name;
    final TextView population;
    final TextView country;
    final ImageView icon;
    final View layout;

    public ViewHolder(TextView name, TextView population, TextView country,
            ImageView icon, View layout) {
        this.name = name;
        this.population = population;
        this.country = country;
        this.icon = icon;
        this.layout = layout;
    }
}
</code></pre>

<p><strong>Edit:</strong> I get error in this line ViewHolder holder = (ViewHolder) view.getTag(); Below I put stacktrace that show where error happend 
    09-15 13:35:21.586: ERROR/AndroidRuntime(2175): FATAL EXCEPTION: main
09-15 13:35:21.586: ERROR/AndroidRuntime(2175): java.lang.ClassCastException: java.lang.String
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at com.dataart.representation.ItemsAdapter.bindView(ItemsAdapter.java:38)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at android.widget.CursorAdapter.getView(CursorAdapter.java:186)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at android.widget.AbsListView.obtainView(AbsListView.java:1397)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at android.widget.ListView.addViewBelow(ListView.java:2914)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at android.widget.ListView.scrollListItemsBy(ListView.java:2843)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at android.widget.ListView.arrowScrollImpl(ListView.java:2340)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at android.widget.ListView.arrowScroll(ListView.java:2287)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at android.widget.ListView.commonKey(ListView.java:2089)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at android.widget.ListView.onKeyDown(ListView.java:2036)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at android.view.KeyEvent.dispatch(KeyEvent.java:1256)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at android.view.View.dispatchKeyEvent(View.java:3855)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:787)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at android.widget.ListView.dispatchKeyEvent(ListView.java:2021)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:789)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:789)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:789)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:789)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:1687)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1120)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at android.app.Activity.dispatchKeyEvent(Activity.java:2073)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1663)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at android.view.ViewRoot.deliverKeyEventToViewHierarchy(ViewRoot.java:2560)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at android.view.ViewRoot.handleFinishedEvent(ViewRoot.java:2535)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1867)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at android.os.Handler.dispatchMessage(Handler.java:99)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at android.os.Looper.loop(Looper.java:123)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at android.app.ActivityThread.main(ActivityThread.java:3647)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at java.lang.reflect.Method.invokeNative(Native Method)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at java.lang.reflect.Method.invoke(Method.java:507)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
09-15 13:35:21.586: ERROR/AndroidRuntime(2175):     at dalvik.system.NativeStart.main(Native Method)</p>
