Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.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中限制listview中的记录数从php获取记录_Php_Android_Mysql_Listview - Fatal编程技术网

如何在android中限制listview中的记录数从php获取记录

如何在android中限制listview中的记录数从php获取记录,php,android,mysql,listview,Php,Android,Mysql,Listview,我从连接到Mysql的php脚本中获取Json记录。 php脚本一次发送500条记录。 然后将这些记录转换为数组,并生成包含所有500条记录的listview。 我希望listview一次显示20条记录,当用户到达listview的底部时,应该显示下20条记录 用于此活动的代码是 public class ListActivity extends AppCompatActivity implements AsyncResponse, AdapterView.OnItemClickListener

我从连接到Mysql的php脚本中获取Json记录。 php脚本一次发送500条记录。 然后将这些记录转换为数组,并生成包含所有500条记录的listview。 我希望listview一次显示20条记录,当用户到达listview的底部时,应该显示下20条记录

用于此活动的代码是

public class ListActivity extends AppCompatActivity implements AsyncResponse, AdapterView.OnItemClickListener {
final String LOG = "ListActivity";

private ArrayList<Product> productList;
private ListView lvProduct;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_list);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();
        }
    });
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    ImageLoader.getInstance().init(UILConfig.config(ListActivity.this));

    PostResponseAsyncTask taskRead = new PostResponseAsyncTask(ListActivity.this, this);
    taskRead.execute("http:///product.php");

}

@Override
public void processFinish(String s) {
    productList = new JsonConverter<Product>().toArrayList(s, Product.class);

    BindDictionary<Product> dict = new BindDictionary<Product>();
    dict.addStringField(R.id.tvName, new StringExtractor<Product>() {
        @Override
        public String getStringValue(Product product, int position) {
            return product.name;
        }
    });


    dict.addStringField(R.id.tvPrice, new StringExtractor<Product>() {
        @Override
        public String getStringValue(Product product, int position) {
            return "" + product.v;
        }
    });
    dict.addDynamicImageField(R.id.ivImage,
            new StringExtractor<Product>() {
                @Override
                public String getStringValue(Product product, int position) {
                    return product.youtubeid;
                }
            }, new DynamicImageLoader() {
                @Override
                public void loadImage(String url, ImageView imageView) {


                    ImageLoader.getInstance().displayImage(url, imageView);
                }
            });

    FunDapter<Product> adapter = new FunDapter<>(
            ListActivity.this, productList, R.layout.layout_list, dict);

    lvProduct = (ListView)findViewById(R.id.lvProduct);
    lvProduct.setAdapter(adapter);
    lvProduct.setOnItemClickListener(this);
}

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    Product selectedProduct = productList.get(position);
    Intent in = new Intent(ListActivity.this, Detailactivity.class);
    in.putExtra("product", (Serializable) selectedProduct);
    startActivity(in);
}
}
公共类ListActivity扩展AppCompatActivity实现AsyncResponse、AdapterView.OnItemClickListener{
最终字符串LOG=“ListActivity”;
私有ArrayList产品列表;
私有ListView产品;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_列表);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
设置支持操作栏(工具栏);
FloatingActionButton fab=(FloatingActionButton)findViewById(R.id.fab);
fab.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Snackbar.make(查看“替换为您自己的操作”,Snackbar.LENGTH\u LONG)
.setAction(“Action”,null).show();
}
});
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
ImageLoader.getInstance().init(UILConfig.config(ListActivity.this));
PostResponseAsyncTask taskRead=新的PostResponseAsyncTask(ListActivity.this,this);
taskRead.execute(“http:///product.php");
}
@凌驾
公共void processFinish(字符串s){
productList=new JsonConverter().toArrayList(s,Product.class);
BindDictionary dict=新建BindDictionary();
dict.addStringField(R.id.tvName,新StringExtractor(){
@凌驾
公共字符串getStringValue(产品,int位置){
返回产品名称;
}
});
dict.addStringField(R.id.tvPrice,新StringExtractor(){
@凌驾
公共字符串getStringValue(产品,int位置){
返回“”+产品v;
}
});
dict.addDynamicImageField(R.id.ivImage,
新StringExtractor(){
@凌驾
公共字符串getStringValue(产品,int位置){
返回product.youtubeid;
}
},新的DynamicImageLoader(){
@凌驾
公共void loadImage(字符串url,ImageView){
ImageLoader.getInstance().displayImage(url,imageView);
}
});
FunDapter适配器=新的FunDapter(
ListActivity.this、productList、R.layout.layout\u list、dict);
lvProduct=(ListView)findViewById(R.id.lvProduct);
lvProduct.setAdapter(适配器);
lvProduct.setOnItemClickListener(this);
}
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
Product Selected Product=productList.get(位置);
Intent in=新的Intent(ListActivity.this,Detailactivity.class);
in.putExtra(“产品”,(可序列化)selectedProduct);
星触觉(in);
}
}

您可以将所有这500条记录添加到一个数组中,然后一次从数组中获取20条记录,仅保留您为列表中的下一个采石场停留的位置。谢谢,我如何从数组中一次获取20条记录这正是我想知道的,在按下按钮的外部声明一个类似int i=0的键。按下按钮后,将按键更新20,然后将按键重新用作下一个起点,当您需要剩余的数据时,您可以将所有这500条记录添加到一个数组中,并从数组中一次获取20条记录,仅保留您在列表中下一个采石场停留的位置。谢谢,我如何从数组中一次获取20条记录这正是我想知道的是,在按下按钮之外声明一个像int i=0这样的键。按下按钮后,将按键更新20,然后在需要其他数据时,将按键重新用作下一个起点