SoFunction
Updated on 2025-04-09

MVPXlistView displays pull-up and pull-down effect

This article shares the specific code displayed by pull-down on MVPXlistView for your reference. The specific content is as follows

Base draw

package .;
 
import ;
import ;
import .;
 
public abstract class BackActivity extends AppCompatActivity {
 @Override
 protected void onCreate(@Nullable Bundle savedInstanceState) {
  (savedInstanceState);
  init();
 }
 
 protected abstract int getLayout();
 protected abstract void initViews();
 protected abstract void setOnClick();
 protected abstract void processLogic();
 void init(){
  if (getLayout()!=0){
   setContentView(getLayout());
   initViews();
   setOnClick();
   processLogic();
  }else {
   throw new IllegalStateException("Please load the layout file");
  }
 }
}

Model

package .;
 
import .;
 
public interface Model {
 void getData(String mUrl,String parants,MyCallBase callBase);
}

MyCallBase

package .;
 
import .;
 
public interface MyCallBase {
 void setData(User data);
 void setError(String error);
}

Modelimpl

package .;
 
import ;
import ;
import ;
 
import ;
import .;
import .;
import .;
import .;
 
import ;
 
public class Modelimpl implements Model {
 private Handler handler=new Handler(){
  @Override
  public void handleMessage(Message msg) {
   (msg);
   String JsonStr= (String) ;
   Gson gson=new Gson();
   User user= (JsonStr,);
   (user);
  }
 };
 private MyCallBase callBase;
 @Override
 public void getData(final String mUrl, String parants, final MyCallBase callBase) {
  =callBase;
  new Thread(new Runnable() {
   @Override
   public void run() {
    try {
     String json = (mUrl);
     ((0,json));
    } catch (Exception e) {
     ();
     ("abnormal");
     ();
    }
   }
  }).start();
 }
}

HttpUtils

package .;
 
import ;
import ;
import ;
import ;
import ;
import ;
 
public class HttpUtils {
 public static String get(String mUrl) throws Exception {
  URL url=new URL(mUrl);
  HttpURLConnection connection = (HttpURLConnection) ();
  //Set request method  ("GET");
  (5000);
  InputStream stream = ();
  String inputStr = getInputStr(stream);
  return inputStr;
 }
 
 //Turn the stream into a string private static String getInputStr(InputStream stream) throws IOException {
  BufferedReader br = new BufferedReader(new InputStreamReader(stream));
  StringBuffer sb = new StringBuffer();
  String str = null;
  while ((str = ()) != null) {
   (str);
  }
  return ();
 }
}

IView

package .;
 
import .;
 
public interface IView {
 void success(User data);
 void error(String error);
}

Presenter

package .;
 
public interface Presenter {
 void startReponse(String url,String parants);
}

PresenterImpl

package .;
 
import .;
import .;
import .;
import .;
 
public class PresenterImpl implements Presenter {
 private IView iView;
 private Modelimpl model;
 
 public PresenterImpl(IView iView) {
   = iView;
  model = new Modelimpl();
 }
 
 @Override
 public void startReponse(String mUrl, String parants) {
  (mUrl,parants, new MyCallBase() {
   @Override
   public void setData(User data) {
    (data);
   }
 
   @Override
   public void setError(String error) {
    (error);
   }
  });
 }
 public void onDotch(){
  if (iView!=null){
   iView=null;
  }
  if (model!=null){
   model=null;
  }
 }
}

MainActivity

package .day8;
 
import ;
 
import .;
import .;
import .;
import .;
import .;
import ;
 
import ;
 
public class MainActivity extends BackActivity implements IView, {
 
 private XListView xlist_item;
 private PresenterImpl presenter;
 private ArrayList<> mlist=new ArrayList<>();
 private String muUrl="/api/news/?page=";
 private int i=1;
 private MyAdapter adapter;
 
 @Override
 protected int getLayout() {
  return .activity_main;
 }
 
 @Override
 protected void initViews() {
  xlist_item = findViewById(.Xlist_item);
 }
 
 @Override
 protected void setOnClick() {
  xlist_item.setPullLoadEnable(true);
  xlist_item.setXListViewListener(this);
 }
 
 @Override
 protected void processLogic() {
  presenter = new PresenterImpl(this);
  adapter = new MyAdapter(,mlist);
  xlist_item.setAdapter(adapter);
  (muUrl+i, null);
 }
 
 @Override
 public void success(User data) {
  (());
  ();
  stop();
 }
 
 @Override
 public void error(String error) {
  (this, "abnormal", Toast.LENGTH_SHORT).show();
 }
 private void stop() {
  xlist_item.stopRefresh();
  xlist_item.stopLoadMore();
 }
 
 @Override
 public void onRefresh() {
  i = 1;
  ();
  (muUrl + i, null);
 }
 
 @Override
 public void onLoadMore() {
  i++;
  (muUrl + i, null);
 }
}

MyAdapter

package .;
 
import ;
import ;
import ;
import ;
import ;
import ;
 
import .;
import .;
import com.;
 
import ;
 
public class MyAdapter extends BaseAdapter {
 public MyAdapter(Context context, ArrayList<> mlist) {
   = context;
   = mlist;
 }
 
 private Context context;
 private ArrayList<> mlist;
 
 @Override
 public int getCount() {
  return ();
 }
 
 @Override
 public Object getItem(int position) {
  return (position);
 }
 
 @Override
 public long getItemId(int position) {
  return position;
 }
 
 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
  HolderView holder=null;
  if (convertView==null){
   convertView= (context, ,null);
   holder=new HolderView();
   =();
   =();
   (holder);
  }else {
   holder= (HolderView) ();
  }
   bean = (position);
  (());
  ().displayImage((position).getThumbnail_pic_s(),);
  return convertView;
 }
 class HolderView{
  TextView textName;
  ImageView imageName;
 }
}

The above is all the content of this article. I hope it will be helpful to everyone's study and I hope everyone will support me more.