Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用MClickListener翻转listview项的ViewFlipper不工作_Android_Listview_Viewflipper_Onitemclicklistener - Fatal编程技术网

Android 使用MClickListener翻转listview项的ViewFlipper不工作

Android 使用MClickListener翻转listview项的ViewFlipper不工作,android,listview,viewflipper,onitemclicklistener,Android,Listview,Viewflipper,Onitemclicklistener,我创建了一个ListView,它将viewFlipper作为ListItem。ViewFlipper有两个相对布局,分别为rView1和rView2。我正在为ListView设置onItemClickListener和OnItemLongClickListener OnLongClickListener viewFlipper将显示下一个视图,onItemClickListener将检查viewFlipper当前视图。 案例1::如果ViewFlipper的当前视图为-rView1,则它将启动新

我创建了一个ListView,它将viewFlipper作为ListItem。ViewFlipper有两个相对布局,分别为rView1和rView2。我正在为ListView设置onItemClickListener和OnItemLongClickListener

OnLongClickListener viewFlipper将显示下一个视图,onItemClickListener将检查viewFlipper当前视图。 案例1::如果ViewFlipper的当前视图为-rView1,则它将启动新活动。 案例2::如果ViewFlipper的当前视图为-rView2,则它会再次翻转该视图。 问题是-案例2工作不正常。其他一些视图正在列表中翻转。这是我的代码片段-

列表活动-

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.d("onCreate", "ListActivity");
    YouponDatabase.getInstance(getApplicationContext());
    setContentView(R.layout.yp_coupon_list);
    handler = new Handler();
    listView = (ListView) findViewById(R.id.yp_coupon_list);
    adapter = new ListAdapter(getApplicationContext());
    listView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parentView, View view,
                int position, long column) {
            View v = ((ViewFlipper) view.findViewById(R.id.view_flipper))
                    .getCurrentView();
            if (v.getId() == R.id.rView1) {
                Log.d("ListActivity", "detail item click");
                Intent intent = new Intent(ListActivity.this,
                        DetailActivity.class);
                startActivity(intent);
            } else if (v.getId() == R.id.rView2) {
                Log.d("ListActivity", "share item click::"
                        + view.toString());
                adapter.flipItem(view);
            }
        }
    });
    listView.setOnItemLongClickListener(new OnItemLongClickListener() {

        @Override
        public boolean onItemLongClick(AdapterView<?> parentView,
                View view, int position, long column) {
            Log.d("ListActivity", "item long click");
            adapter.flipItem(view, position);
            return true;
        }
    });
}
列表适配器-

public class ListAdapter extends BaseAdapter {

private static class ViewHolder {
    private ViewFlipper flipper;
    private ImageView listImage;
    private TextView Area;
};

private LayoutInflater inflater;
private Context appContext;
private Handler handler = new Handler();
private List<item> currentList;
private DrawableLoader drawableLoader = null;
private ViewHolder viewHolder;

public ListAdapter(Context context) {
    inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    appContext = context.getApplicationContext();
    drawableLoader = new DrawableLoader(appContext);
}

public void setList(List<item> list) {
    currentList = list;
}

@Override
public int getCount() {
    if (currentList != null)
        return currentList.size();
    return 0;
}

@Override
public Object getItem(int position) {
    return currentList.get(position);
}

@Override
public long getItemId(int position) {
    return -1;
}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    final item x = currentList.get(position);

    if (convertView == null) {
        convertView = inflater.inflate(R.layout.yp_coupon_list_content,
                null);
    }
    viewHolder = (ViewHolder) convertView.getTag();
    if (viewHolder == null && convertView.getId() == -1) {
        viewHolder = new ViewHolder();
        viewHolder.flipper = (ViewFlipper) convertView
                .findViewById(R.id.view_flipper);
        viewHolder.listImage = (ImageView) convertView
                .findViewWithTag(appContext.getResources().getString(
                        R.string.yp_image_tag));
        viewHolder.Area = (TextView) convertView
                .findViewById(R.id.yp_coupon_area);
        convertView.setTag(viewHolder);
    } else {
        View v = viewHolder.flipper.getCurrentView();
        if (v.getId() == R.id.deal_share) {
            Log.d("list Adapter", "Reset it");
            viewHolder.flipper.setDisplayedChild(0);
        }
    }
    viewHolder.Area.setText(x.getArea());
    return convertView;
}

public void flipItem(View view, int position) {
    if (view != null) {
        Log.d("flipItem", "" + view.toString());
        ViewFlipper viewFlipper = ((ViewFlipper) view
                .findViewById(R.id.view_flipper));
        if (viewFlipper.getCurrentView().getId() == R.id.deal_detial) {
            Log.d("flipItem", "now share comes");
            viewFlipper.showNext();
            ImageView share = (ImageView) view.findViewById(R.id.share);
            share.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View arg0) {
                    Log.d("Share clicked", "Inflate layout");
                }
            });
        } else {
            Log.d("flipItem", "now detail comes");
            viewFlipper.showNext();
        }

    }
}

public void flipItem(View view) {
    if (view != null) {
        Log.d("flipItem", "" + view.toString());
        ViewFlipper viewFlipper = ((ViewFlipper) view
                .findViewById(R.id.view_flipper));
        viewFlipper.showNext();
    }
}

请帮助我,我无法找出代码中的错误。

请确保正确实施视图持有者回收概念。请参阅下面的链接答案以获得视图持有者的实现


确保正确实施视图支架回收概念。请参阅下面的链接答案以获得视图持有者的实现

检查此项:检查此项: