ListVeiw上拉

来源:互联网 发布:网络硬盘服务器 编辑:程序博客网 时间:2024/05/22 05:13
package lipengfei.yuekao;
import android.content.Intent;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.google.gson.Gson;
import org.xutils.common.Callback;
import org.xutils.http.RequestParams;
import org.xutils.x;
import java.util.ArrayList;
import lipengfei.yuekao.Adapter.MyListViewAdapter;
import lipengfei.yuekao.Bean.BeanFood;
public class AActivity extends AppCompatActivity implements AdapterView.OnItemLongClickListener, View.OnClickListener, AbsListView.OnScrollListener, AdapterView.OnItemClickListener {
    //需要加载的网址
    private String path="http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=10&page=";
    private Toolbar toolbar;
    private ListView listview;
    //数据源
    private ArrayList<BeanFood.DataBean> arrays;
    //适配器
    private MyListViewAdapter adapter;
    private TextView tv1,tv2,tv3,tv4,tv5;
    private int index;
    private boolean isFlag;
    private View foot;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_a);
        //实例化控件
        initView();
    }
    private void initView() {
        //实例化toolbar并设置属性
        toolbar = (Toolbar) findViewById(R.id.tool);
        toolbar.setTitle("菜单一");
        toolbar.setSubtitle("好菜好吃好美味!");
        toolbar.inflateMenu(R.menu.aa);
        //实例化listview
        listview = (ListView) findViewById(R.id.list);
        //实例化数据源
        arrays=new ArrayList<>();
        adapter=new MyListViewAdapter(AActivity.this,arrays);
        listview.setAdapter(adapter);
        //加载网路数据的方法
        LoadData(path);
        //listView的长按监听
        listview.setOnItemLongClickListener(this);
        //listview的划动监听
        listview.setOnScrollListener(this);
        foot=LayoutInflater.from(this).inflate(R.layout.list_layout,null);
        foot.setVisibility(View.GONE);
        listview.addFooterView(foot);
        //listview的点击事件
        listview.setOnItemClickListener(this);
    }
    private void LoadData(String path) {
        index++;
        RequestParams requestParams = new RequestParams(path+index);
        x.http().get(requestParams, new Callback.CommonCallback<String>() {
            @Override//加载成功后调用的方法
            public void onSuccess(String s) {
                Gson gson=new Gson();
                BeanFood beanFood = gson.fromJson(s, BeanFood.class);
                arrays.addAll(beanFood.getData());
                adapter.notifyDataSetChanged();
            }
            @Override
            public void onError(Throwable throwable, boolean b) {
            }
            @Override
            public void onCancelled(CancelledException e) {
            }
            @Override
            public void onFinished() {
            }
        });
    }
    @Override
    public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
        View dialong= LayoutInflater.from(this).inflate(R.layout.dialog_lauout,null);
        tv1=dialong.findViewById(R.id.dailog_tv1);
        tv2=dialong.findViewById(R.id.dailog_tv2);
        tv3=dialong.findViewById(R.id.dailog_tv3);
        tv4=dialong.findViewById(R.id.dailog_tv4);
        tv5=dialong.findViewById(R.id.dailog_tv5);
        tv1.setOnClickListener(this);
        tv2.setOnClickListener(this);
        tv3.setOnClickListener(this);
        tv4.setOnClickListener(this);
        tv5.setOnClickListener(this);
        AlertDialog.Builder builder=new AlertDialog.Builder(this);
        builder.setIcon(R.mipmap.ic_launcher);
        builder.setTitle("菜名:"+arrays.get(i).getTitle());
        builder.setView(dialong);
        builder.create().show();
        return true;
    }
    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.dailog_tv1:
                Toast.makeText(this, "不好吃!", Toast.LENGTH_SHORT).show();
                break;
            case R.id.dailog_tv2:
                Toast.makeText(this, "味道一般!", Toast.LENGTH_SHORT).show();
                break;
            case R.id.dailog_tv3:
                Toast.makeText(this, "好吃!", Toast.LENGTH_SHORT).show();
                break;
            case R.id.dailog_tv4:
                Toast.makeText(this, "超赞!", Toast.LENGTH_SHORT).show();
                break;
            case R.id.dailog_tv5:
                Toast.makeText(this, "再来一份!", Toast.LENGTH_SHORT).show();
                break;
        }
    }
    @Override
    public void onScrollStateChanged(AbsListView absListView, int i) {
        if (isFlag&&i==0){
            foot.setVisibility(View.VISIBLE);
            LoadData(path);
        }else{
            foot.setVisibility(View.GONE);
        }
    }
    @Override
    public void onScroll(AbsListView absListView, int i, int i1, int i2) {
        if (i+i1==i2){
            isFlag=true;
        }else{
            isFlag=false;
        }
    }
    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
        Intent intent = new Intent(this,Main2Activity.class);
        intent.putExtra("data",arrays.get(i));
        startActivity(intent);
    }
}