package in.srain.cube.views.ptr.demo.ui;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import in.srain.cube.image.CubeImageView;
import in.srain.cube.image.ImageLoader;
import in.srain.cube.image.ImageLoaderFactory;
import in.srain.cube.mints.base.TitleBaseFragment;
import in.srain.cube.util.CLog;
import in.srain.cube.views.list.ListViewDataAdapter;
import in.srain.cube.views.list.ViewHolderBase;
import in.srain.cube.views.ptr.PtrDefaultHandler;
import in.srain.cube.views.ptr.PtrFrameLayout;
import in.srain.cube.views.ptr.demo.R;
import in.srain.cube.views.ptr.demo.image.Images;
import java.util.Arrays;
public class WithLongPressFragment extends TitleBaseFragment {
private ImageLoader mImageLoader;
@Override
protected View createView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mImageLoader = ImageLoaderFactory.create(getActivity());
View view = inflater.inflate(R.layout.fragment_with_long_press, null);
setHeaderTitle(R.string.ptr_demo_block_with_long_press);
final PtrFrameLayout ptrFrameLayout = (PtrFrameLayout) view.findViewById(R.id.with_long_press_list_view_frame);
ptrFrameLayout.setInterceptEventWhileWorking(true);
ListView listView = (ListView) view.findViewById(R.id.with_long_press_list_view);
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
CLog.d("ptr-demo", "onLongClick");
return true;
}
});
final ListViewDataAdapter<String> listViewDataAdapter = new ListViewDataAdapter<String>();
listViewDataAdapter.setViewHolderClass(this, ViewHolder.class);
ptrFrameLayout.setPtrHandler(new PtrDefaultHandler() {
@Override
public void onRefreshBegin(PtrFrameLayout frame) {
ptrFrameLayout.postDelayed(new Runnable() {
@Override
public void run() {
listViewDataAdapter.getDataList().clear();
listViewDataAdapter.getDataList().addAll(Arrays.asList(Images.imageUrls));
listViewDataAdapter.notifyDataSetChanged();
ptrFrameLayout.refreshComplete();
}
}, 500);
}
});
ptrFrameLayout.postDelayed(new Runnable() {
@Override
public void run() {
ptrFrameLayout.autoRefresh();
}
}, 100);
listView.setAdapter(listViewDataAdapter);
return view;
}
private class ViewHolder extends ViewHolderBase<String> {
private CubeImageView mImageView;
/**
* create a view from resource Xml file, and hold the view that may be used in displaying data.
*
* @param layoutInflater
*/
@Override
public View createView(LayoutInflater layoutInflater) {
View view = layoutInflater.inflate(R.layout.with_long_press_list_view_item, null);
mImageView = (CubeImageView) view.findViewById(R.id.with_long_press_list_image);
return view;
}
/**
* using the held views to display data
*
* @param position
* @param itemData
*/
@Override
public void showData(int position, String itemData) {
mImageView.loadImage(mImageLoader, itemData);
}
}
}