在Android的列表视图分页 [英] Listview Pagination in android
问题描述
我有,我已经显示50元素的列表视图。我已决定分页视图,以便对视图的每一部分有10个元素,然后下一个按钮被点击,以到达下一个10个元素。如何设置10个数据?我按照这篇文章 HTTP://rakhi577.word$p$ pss.com/2013/05/20/listview-pagination-ex-2/ 这是我的code。可你帮我code或如何实现此链接到一个导向是否正确?
公共类MainActivity扩展ListActivity {
上下文语境;
按钮btnSearch;
的EditText txtSearch;
私人ProgressDialog pDialog;
// URL获得接触JSON
公众诠释TOTAL_LIST_ITEMS = 50;
公众诠释NUM_ITEMS_PAGE = 10;
私人诠释noOfBtns;
私人按钮[] btns;
// JSON节点名称
私有静态最后弦乐TAG_CONTACTS =人脉;
私有静态最后弦乐TAG_ID =ID;
私有静态最后弦乐TAG_NAME =名;
私有静态最后弦乐TAG_EMAIL =电子邮件;
私有静态最后弦乐TAG_ADDRESS =地址;
私有静态最后弦乐TAG_GENDER =性别;
私有静态最后弦乐TAG_PHONE =手机;
私有静态最后弦乐TAG_PHONE_MOBILE =移动;
私有静态最后弦乐TAG_PHONE_HOME =家;
私有静态最后弦乐TAG_PHONE_OFFICE =办公室;
//联系人JSONArray
JSONArray接触= NULL;
//哈希映射为的ListView
ArrayList的< HashMap的<字符串,字符串>>联系人列表;
@覆盖
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_main);
btnSearch =(按钮)findViewById(R.id.buttonSearch);
txtSearch =(EditText上)findViewById(R.id.Searchtext);
}
公共字符串gotourl()
{
最后的EditText txtSearch =(EditText上)findViewById(R.id.Searchtext);
字符串TS = txtSearch.getText()的toString()。
字符串URL = "http://latest.bloomapi.com/api/search?limit=50&offset=0&key1=last_name&op1=eq&value1="+ts;
返回URL;
}
公共无效Searchfunction(视图v)
{
Btnfooter();
// loadList(0);
CheckBtnBackGroud(0);
contactList =新的ArrayList< HashMap的<字符串,字符串>>();
ListView的LV = getListView();
//列表视图对项目点击监听器
lv.setOnItemClickListener(新OnItemClickListener(){
@覆盖
公共无效onItemClick(适配器视图<>母公司视图中查看,
INT位置,长的id){
//从选择列表项获得价值
字符串名称=((TextView中)view.findViewById(R.id.name))
.getText()的toString()。
串成本=((TextView中)view.findViewById(R.id.email))
.getText()的toString()。
字符串描述=((TextView中)view.findViewById(R.id.mobile))
.getText()的toString()。
//开始单触点活动
意图=新的意图(getApplicationContext()
SingleContactActivity.class);
in.putExtra(TAG_NAME,姓名);
in.putExtra(TAG_EMAIL,成本);
in.putExtra(TAG_PHONE_MOBILE,说明);
startActivity(在);
}
});
//调用异步任务来获得JSON
新GetContacts()执行();
}
私人无效Btnfooter()
{
INT VAL = TOTAL_LIST_ITEMS%NUM_ITEMS_PAGE;
VAL = VAL == 0?0:1;
noOfBtns = TOTAL_LIST_ITEMS / NUM_ITEMS_PAGE + VAL;
的LinearLayout LL =(的LinearLayout)findViewById(R.id.btnLay);
btns =新按钮[noOfBtns]
的for(int i = 0; I< noOfBtns;我++)
{
btns [我] =新的按钮(这一点);
btns [I] .setBackgroundColor(getResources()的getColor(android.R.color.transparent)。);
btns [I] .setText(+第(i + 1));
LinearLayout.LayoutParams LP =新LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
ll.addView(btns [我],LP);
最终诠释J =;
btns [J] .setOnClickListener(新OnClickListener(){
公共无效的onClick(视图v)
{
// loadList(J);
CheckBtnBackGroud(J);
}
});
}
}
私人无效CheckBtnBackGroud(INT指数)
{
的for(int i = 0; I< noOfBtns;我++)
{
如果(我==指数)
{
btns [指数] .setBackgroundDrawable(getResources()getDrawable(R.drawable.box_green)。);
btns [I] .setTextColor(getResources()的getColor(android.R.color.white)。);
}
其他
{
btns [I] .setBackgroundColor(getResources()的getColor(android.R.color.transparent)。);
btns [I] .setTextColor(getResources()的getColor(android.R.color.black)。);
}
}
}
私有类GetContacts扩展的AsyncTask<虚空,虚空,虚空> {
@覆盖
在preExecute保护无效(){
super.on preExecute();
//显示进度对话框
pDialog =新ProgressDialog(MainActivity.this);
pDialog.setMessage(请稍候...);
pDialog.setCancelable(假);
pDialog.show();
}
@覆盖
保护无效doInBackground(虚空......为arg0){
//创建服务处理程序类实例
ServiceHandler SH =新ServiceHandler();
//制作一个请求URL并得到响应
串jsonStr = sh.makeServiceCall(gotourl(),ServiceHandler.GET);
Log.d(回应:,>中+ jsonStr);
如果(jsonStr!= NULL){
尝试 {
JSONObject的jsonObj =新的JSONObject(jsonStr);
//获取JSON数组节点
联系人= jsonObj.getJSONArray(结果);
//遍历所有联系人
的for(int i = 0; I< contacts.length();我++){
整数= contacts.length();
Log.d(循环,a.toString());
JSONObject的C = contacts.getJSONObject(我);
字符串ID = c.getString(NPI);
字符串名称= c.getString(FIRST_NAME);
字符串email = c.getString(姓氏);
//字符串的地址= c.getString(TAG_ADDRESS);
字符串性别= c.getString(类);
// TMP的HashMap的单触点
HashMap的<字符串,字符串>触点=新的HashMap<字符串,字符串>();
//添加每个子节点HashMap中的key =>值
contact.put(NPI,身份证);
contact.put(FIRST_NAME,名);
contact.put(姓氏,邮件);
//contact.put(TAG_PHONE_MOBILE,手机);
contact.put(类型,性别);
//添加联系人到联系人列表
contactList.add(接触);
}
}赶上(JSONException E){
e.printStackTrace();
}
} 其他 {
Log.d(ServiceHandler,无法从URL中得到任何数据);
}
返回null;
}
@覆盖
保护无效onPostExecute(无效的结果){
super.onPostExecute(结果);
//辞退进度对话框
如果(pDialog.isShowing())
pDialog.dismiss();
/ **
*更新解析JSON数据到ListView控件
* * /
ListAdapter适配器=新SimpleAdapter(
MainActivity.this,contactList,
R.layout.list_item,新的String [] {FIRST_NAME,姓氏,
型},新的INT [] {R.id.name,
R.id.email,R.id.mobile});
setListAdapter(适配器);
}
}}
我改变code。当我点击下一步按钮[像2,3,4,5]。显示第一页的数据。这是我修改code.Any帮助鸭preciated:
公共类MainActivity扩展ListActivity {
私人TextView的称号;
上下文语境;
按钮btnSearch;
的EditText txtSearch;
私人的ListView列表视图;
私人ProgressDialog pDialog;
// URL获得接触JSON
公众诠释TOTAL_LIST_ITEMS = 50;
公众诠释NUM_ITEMS_PAGE = 10;
私人诠释noOfBtns;
私人按钮[] btns;
// JSON节点名称
私有静态最后弦乐TAG_CONTACTS =人脉;
私有静态最后弦乐TAG_ID =ID;
私有静态最后弦乐TAG_NAME =名;
私有静态最后弦乐TAG_EMAIL =电子邮件;
私有静态最后弦乐TAG_ADDRESS =地址;
私有静态最后弦乐TAG_GENDER =性别;
私有静态最后弦乐TAG_PHONE =手机;
私有静态最后弦乐TAG_PHONE_MOBILE =移动;
私有静态最后弦乐TAG_PHONE_HOME =家;
私有静态最后弦乐TAG_PHONE_OFFICE =办公室;
//联系人JSONArray
JSONArray接触= NULL;
//哈希映射为的ListView
ArrayList的< HashMap的<字符串,字符串>>联系人列表;
@覆盖
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_main);
btnSearch =(按钮)findViewById(R.id.buttonSearch);
txtSearch =(EditText上)findViewById(R.id.Searchtext);
标题=(TextView中)findViewById(R.id.title);
}
公共字符串gotourl()
{
最后的EditText txtSearch =(EditText上)findViewById(R.id.Searchtext);
字符串TS = txtSearch.getText()的toString()。
字符串URL = "http://latest.bloomapi.com/api/search?limit=50&offset=0&key1=last_name&op1=eq&value1="+ts;
返回URL;
}
公共无效Searchfunction(视图v)
{
Btnfooter();
CheckBtnBackGroud(0);
contactList =新的ArrayList< HashMap的<字符串,字符串>>();
ListView的LV = getListView();
//列表视图对项目点击监听器
lv.setOnItemClickListener(新OnItemClickListener(){
@覆盖
公共无效onItemClick(适配器视图<>母公司视图中查看,
INT位置,长的id){
如果(位置%2 == 0)
{
view.setBackgroundColor(Color.parseColor(#F4FA58));
}其他
{
view.setBackgroundColor(Color.parseColor(#DA81F5));
}
//从选择列表项获得价值
字符串名称=((TextView中)view.findViewById(R.id.name))
.getText()的toString()。
串成本=((TextView中)view.findViewById(R.id.email))
.getText()的toString()。
字符串描述=((TextView中)view.findViewById(R.id.mobile))
.getText()的toString()。
//开始单触点活动
意图=新的意图(getApplicationContext()
SingleContactActivity.class);
in.putExtra(TAG_NAME,姓名);
in.putExtra(TAG_EMAIL,成本);
in.putExtra(TAG_PHONE_MOBILE,说明);
startActivity(在);
}
});
//调用异步任务来获得JSON
新GetContacts()执行();
}
私人无效Btnfooter()
{
INT VAL = TOTAL_LIST_ITEMS%NUM_ITEMS_PAGE;
VAL = VAL == 0?0:1;
noOfBtns = TOTAL_LIST_ITEMS / NUM_ITEMS_PAGE + VAL;
的LinearLayout LL =(的LinearLayout)findViewById(R.id.btnLay);
btns =新按钮[noOfBtns]
的for(int i = 0; I< noOfBtns;我++)
{
btns [我] =新的按钮(这一点);
btns [I] .setBackgroundColor(getResources()的getColor(android.R.color.transparent)。);
btns [I] .setText(+第(i + 1));
LinearLayout.LayoutParams LP =新LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
ll.addView(btns [我],LP);
最终诠释J =;
btns [J] .setOnClickListener(新OnClickListener(){
公共无效的onClick(视图v)
{
新GetContacts()执行();
CheckBtnBackGroud(J);
}
});
}
}
私人无效CheckBtnBackGroud(INT指数)
{
title.setText(页+(索引+1)+ noOfBtns的);
的for(int i = 0; I< noOfBtns;我++)
{
如果(我==指数)
{
btns [指数] .setBackgroundDrawable(getResources()getDrawable(R.drawable.box_green)。);
btns [I] .setTextColor(getResources()的getColor(android.R.color.white)。);
}
其他
{
btns [I] .setBackgroundColor(getResources()的getColor(android.R.color.transparent)。);
btns [I] .setTextColor(getResources()的getColor(android.R.color.black)。);
}
}
}
私有类GetContacts扩展的AsyncTask<虚空,虚空,虚空> {
@覆盖
在preExecute保护无效(){
super.on preExecute();
//显示进度对话框
pDialog =新ProgressDialog(MainActivity.this);
pDialog.setMessage(请稍候...);
pDialog.setCancelable(假);
pDialog.show();
}
@覆盖
保护无效doInBackground(虚空......为arg0){
//创建服务处理程序类实例
ServiceHandler SH =新ServiceHandler();
//制作一个请求URL并得到响应
串jsonStr = sh.makeServiceCall(gotourl(),ServiceHandler.GET);
Log.d(回应:,>中+ jsonStr);
如果(jsonStr!= NULL){
尝试 {
JSONObject的jsonObj =新的JSONObject(jsonStr);
INT编号= 0;
INT开始=数量* NUM_ITEMS_PAGE;
//遍历所有联系人
//获取JSON数组节点
联系人= jsonObj.getJSONArray(结果);
//遍历所有联系人
//的for(int i = 0; I< contacts.length();我++){
对于(INT I =启动;我≤(开始)+ NUM_ITEMS_PAGE;我++){
整数= contacts.length();
Log.d(循环,a.toString());
JSONObject的C = contacts.getJSONObject(我);
字符串ID = c.getString(NPI);
字符串名称= c.getString(FIRST_NAME);
字符串email = c.getString(姓氏);
字符串性别= c.getString(类);
// TMP的HashMap的单触点
HashMap的<字符串,字符串>触点=新的HashMap<字符串,字符串>();
//添加每个子节点HashMap中的key =>值
contact.put(NPI,身份证);
contact.put(FIRST_NAME,名);
contact.put(姓氏,邮件);
//contact.put(TAG_PHONE_MOBILE,手机);
contact.put(类型,性别);
//添加联系人到联系人列表
contactList.add(接触);
}
}赶上(JSONException E){
e.printStackTrace();
}
} 其他 {
Log.d(ServiceHandler,无法从URL中得到任何数据);
}
返回null;
}
@覆盖
保护无效onPostExecute(无效的结果){
super.onPostExecute(结果);
//辞退进度对话框
如果(pDialog.isShowing())
pDialog.dismiss();
/ **
*更新解析JSON数据到ListView控件
* * /
ListAdapter适配器=新SimpleAdapter(
MainActivity.this,contactList,
R.layout.list_item,新的String [] {FIRST_NAME,姓氏,
型},新的INT [] {R.id.name,
R.id.email,R.id.mobile});
setListAdapter(适配器);
}
}}
下面是我的code,显示列表视图分页。有两个蓝色按钮,更改网页。
您可以根据需要定制。
创建UserCategory.java
包com.UserCategory;
进口的java.net.URL;
进口的java.util.ArrayList;
进口javax.xml.parsers.DocumentBuilder中;
进口javax.xml.parsers.DocumentBuilderFactory中;
进口org.w3c.dom.Document中;
进口org.w3c.dom.Element中;
进口org.w3c.dom.Node中;
进口org.w3c.dom.NodeList;
进口org.xml.sax.InputSource中;
进口android.app.Activity;
进口android.content.pm.ActivityInfo;
进口android.os.Bundle;
进口android.view.View;
进口android.view.View.OnClickListener;
进口android.view.Window;
进口android.widget.ArrayAdapter;
进口android.widget.EditText;
进口android.widget.ImageView;
进口android.widget.ListView;
公共类UserCategory扩展活动实现OnClickListener {
私人最终诠释PAGE_SIZE = 5;
私人诠释StartingIndex = 0;
ArrayList的<字符串> userClass =新的ArrayList<字符串>();
INT长度限制:Textlength = 0;
私人字符串lv_arr [];
私人的ListView LV1;
的EditText searchText;
//按钮previous;
私人拉线机[] = {机器1,机器2,机器3,机4,机5,机6,机7,机8,机9 ,机10,机11,机12,机器1,机器2,机器3,机4,机5,机6,机7 ,机8,9机,机10,11机,机12};
ImageView的旁边,previous;
@覆盖
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
。this.getWindow()requestFeature(Window.FEATURE_NO_TITLE);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
的setContentView(R.layout.main);
LV1 =(ListView控件)findViewById(R.id.ListView01);
searchText =(EditText上)findViewById(R.id.et_Serchlist);
接下来=(ImageView的)findViewById(R.id.btn_next);
previous =(ImageView的)findViewById(R.id.btn_ previous);
next.setOnClickListener(本);
previous.setOnClickListener(本);
//解析();
lv1.setAdapter(新ArrayAdapter<字符串>(这一点,android.R.layout.simple_list_item_1,机));
changeListViewModel(0);
}
私人无效变更(INT startingIndex){
如果(startingIndex℃,){
previous =(ImageView的)findViewById(R.id.btn_ previous);
ImageView的背=(ImageView的)findViewById(R.id.btn_White previous);
back.setVisibility(1);
previous.setVisibility(4);
startingIndex = 0;
}否则如果(startingIndex> = userClass.size())
startingIndex - = PAGE_SIZE;
StartingIndex = startingIndex;
INT endingIndex = startingIndex + PAGE_SIZE;
的System.out.println(结束索引+ endingIndex);
如果(StartingIndex!= 0){
previous =(ImageView的)findViewById(R.id.btn_ previous);
ImageView的背=(ImageView的)findViewById(R.id.btn_White previous);
back.setVisibility(4);
previous.setVisibility(1);
}
如果(endingIndex == userClass.size()){
ImageView的正向=(ImageView的)findViewById(R.id.btn_grewforward);
Forward.setVisibility(1);
接下来=(ImageView的)findViewById(R.id.btn_next);
next.setVisibility(4);
}
如果(endingIndex!= userClass.size()){
ImageView的正向=(ImageView的)findViewById(R.id.btn_grewforward);
Forward.setVisibility(4);
接下来=(ImageView的)findViewById(R.id.btn_next);
next.setVisibility(1);
}
如果(endingIndex> userClass.size())endingIndex = userClass.size();
尝试 {
的String [] =的subSet getDataSubset1(startingIndex,endingIndex);
的System.out.println(数组的subSet+子集);
lv1.setAdapter(新ArrayAdapter<字符串>(这一点,android.R.layout.simple_list_item_1,子集));
}赶上(例外五){
e.printStackTrace();
}
}
私有String [] getDataSubset1(INT startingIndex,诠释endingIndex){
的String []变更=新的String [endingIndex - startingIndex]。
INT指数= -1;
对于(INT X = startingIndex,X< endingIndex; X ++)
变更[++指数= userClass.get(X);
返回变更;
}
私人无效changeListViewModel(INT startingIndex){
如果(startingIndex℃,){
previous =(ImageView的)findViewById(R.id.btn_ previous);
ImageView的背=(ImageView的)findViewById(R.id.btn_White previous);
back.setVisibility(1);
previous.setVisibility(4);
startingIndex = 0;
}
否则,如果(startingIndex> = Machine.length){
startingIndex - = PAGE_SIZE;
}
的System.out.println(strating+ startingIndex);
的System.out.println(startingIndex+ startingIndex);
StartingIndex = startingIndex;
INT endingIndex = startingIndex + PAGE_SIZE;
的System.out.println(endingIndex+ endingIndex);
如果(StartingIndex!= 0)
{
previous =(ImageView的)findViewById(R.id.btn_ previous);
ImageView的背=(ImageView的)findViewById(R.id.btn_White previous);
back.setVisibility(4);
previous.setVisibility(1);
}
如果(endingIndex == userClass.size()){
ImageView的正向=(ImageView的)findViewById(R.id.btn_grewforward);
Forward.setVisibility(1);
接下来=(ImageView的)findViewById(R.id.btn_next);
next.setVisibility(4);
}
如果(endingIndex!= userClass.size()){
ImageView的正向=(ImageView的)findViewById(R.id.btn_grewforward);
Forward.setVisibility(4);
接下来=(ImageView的)findViewById(R.id.btn_next);
next.setVisibility(1);
}
的System.out.println(结束索引+ endingIndex);
如果(endingIndex> Machine.length){
endingIndex = Machine.length;
ImageView的正向=(ImageView的)findViewById(R.id.btn_grewforward);
Forward.setVisibility(1);
接下来=(ImageView的)findViewById(R.id.btn_next);
next.setVisibility(4);
}
的String [] =的subSet getDataSubset(startingIndex,endingIndex);
的System.out.println(主的subSet阵+ subSet.length);
lv1.setAdapter(新ArrayAdapter<字符串>(这一点,android.R.layout.simple_list_item_1,子集));
}
私有String [] getDataSubset(INT startingIndex,诠释endingIndex){
的String [] toRet =新的String [endingIndex - startingIndex]。
INT指数= -1;
的System.out.println(指数+指数);
对于(INT X = startingIndex,X< endingIndex; X ++)
toRet [++指数=机[X]
返回toRet;
}
私人无效解析(){
// TODO自动生成方法存根
尝试 {
网址URL =新的URL(http://10.10.1.100/DogEventsWebService/EventService.svc/categories/1);
DocumentBuilderFactory的DBF = DocumentBuilderFactory.newInstance();
DocumentBuilder的DB = dbf.newDocumentBuilder();
文档的文档= db.parse(新的InputSource(url.openStream()));
doc.getDocumentElement()归()。
节点列表节点列表= doc.getElementsByTagName(UserCategory);
机器=新的String [nodeList.getLength()];
的for(int i = 0; I< nodeList.getLength();我++)
{
节点node = nodeList.item(ⅰ);
机[我] =新的String();
元素fstElmnt =(元)节点;
节点列表名单= fstElmnt.getElementsByTagName(ClassDescription);
元件nameElement =(元件)nameList.item(0);
名单= nameElement.getChildNodes();
机[I] =((节点)nameList.item(0))getNodeValue()。
}
的System.out.println(之后循环机+机);
}赶上(例外五){
的System.out.println(XML帕兴Excpetion =+ E);
}
}
@覆盖
公共无效的onClick(视图v){
// TODO自动生成方法存根
开关(v.getId()){
案例R.id.btn_next:
。=长度限制:Textlength searchText.getText()长度();
的System.out.println(Next按钮+长度限制:Textlength);
如果(==长度限制:Textlength 0){
changeListViewModel(StartingIndex + PAGE_SIZE);
}其他{
变更(StartingIndex + PAGE_SIZE);
}
打破;
案例R.id.btn_ previous:
。=长度限制:Textlength searchText.getText()长度();
如果(==长度限制:Textlength 0){
changeListViewModel(StartingIndex - PAGE_SIZE);
}其他{
变更(StartingIndex - PAGE_SIZE);
}
打破;
默认:
打破;
}
}
}
创建main.xml中:
< XML版本=1.0编码=UTF-8&GT?;
< RelativeLayout的的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:方向=垂直
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT
>
<查看安卓layout_height =35dp
机器人:layout_width =FILL_PARENT
机器人:后台=#FFFFFF/>
< TextView的机器人:ID =@ + ID / tv_header
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:文本=@字符串/你好
机器人:layout_alignParentTop =真
机器人:layout_marginLeft =0dp
机器人:TEXTSIZE =25dp/>
<的EditText
机器人:ID =@ + ID / et_Serchlist
机器人:layout_height =35dp
机器人:以下属性来=19dp
机器人:layout_marginLeft =60dp
机器人:layout_toRightOf =@ + ID / tv_header
机器人:最大长度=20
机器人:MAXLINES =1
机器人:inputType =文本
机器人:提示=搜索
机器人:文字颜色=#FFFFFF
机器人:背景=@可绘制/ my_border
机器人:layout_width =100dip/>
<的ListView
机器人:ID =@ + ID / ListView01
机器人:layout_width =FILL_PARENT
机器人:TEXTSIZE =递四方
机器人:layout_below =@ + ID / tv_header
机器人:layout_above =@ + ID / btn_ previous
机器人:layout_height =WRAP_CONTENT/>
<查看安卓layout_height =55dp
机器人:layout_below =@ + ID / ListView0
机器人:layout_alignParentBottom =真
机器人:layout_width =FILL_PARENT
机器人:后台=#FFFFFF/>
< ImageView的
机器人:SRC =@可绘制/增长previous
机器人:ID =@ + ID / btn_White previous
机器人:layout_width =WRAP_CONTENT
机器人:layout_marginLeft =12dp
机器人:layout_marginBottom =6DP
机器人:layout_below =@ + ID / ListView0
机器人:能见度=隐形
机器人:layout_alignParentBottom =真
机器人:layout_height =WRAP_CONTENT/>
< ImageView的
机器人:SRC =@可绘制/右
机器人:ID =@ + ID / btn_grewforward
机器人:layout_width =WRAP_CONTENT
机器人:layout_marginLeft =259dp
机器人:layout_marginBottom =6DP
机器人:layout_below =@ + ID / ListView0
机器人:能见度=隐形
机器人:layout_alignParentBottom =真
机器人:layout_height =WRAP_CONTENT/>
< ImageView的
机器人:SRC =@可绘制/后退
机器人:ID =@ + ID / btn_ previous
机器人:layout_width =WRAP_CONTENT
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignParentBottom =真
机器人:layout_marginLeft =12dp
机器人:layout_marginBottom =6DP
机器人:layout_below =@ + ID / ListView0
机器人:的onClick =backButtonClicked/>
< ImageView的机器人:SRC =@可绘制/前进
机器人:ID =@ + ID / btn_next
机器人:layout_width =80dp
机器人:layout_marginBottom =6DP
机器人:layout_height =WRAP_CONTENT
机器人:layout_alignParentBottom =真
机器人:layout_below =@ + ID / ListView0
机器人:layout_marginLeft =249dp
机器人:文本=下一步
机器人:的onClick =nextButtonClicked/>
< / RelativeLayout的>
创建userlist.xml
< XML版本=1.0编码=UTF-8&GT?;
<的LinearLayout
的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:layout_width =match_parent
机器人:layout_height =match_parent>
< TextView的机器人:ID =@ + ID / tv_className
机器人:layout_height =WRAP_CONTENT
机器人:layout_width =WRAP_CONTENT/>
< / LinearLayout中>
添加my_border.xml到绘制对象文件夹:
< XML版本=1.0编码=UTF-8&GT?;
<形状的xmlns:机器人=http://schemas.android.com/apk/res/android>
<行程机器人:宽=2DIP机器人:颜色=#ee777777/>
[固体机器人:颜色=#ee444444/>
<填充
机器人:左=20dip
机器人:顶部=2DIP
机器人:右=20dip
机器人:底部=2DIP/>
<边角机器人:半径=15dip/>
![在此输入图片说明] [1]; /形状>
如果它给出错误iamges然后使用任何其他的图像和运行应用程序。
让我知道它是为你工作。
感谢
I have a listview where I have 50 elements being displayed. I have decided to paginate the view so on each part of the view there are 10 elements and then a next button is clicked to get to the next 10 elements. How can i set 10 data ? I follow this article http://rakhi577.wordpress.com/2013/05/20/listview-pagination-ex-2/ Here is my code .Can you help me with my code or a link to a guide on how to implement this correctly?
public class MainActivity extends ListActivity {
Context context;
Button btnSearch ;
EditText txtSearch;
private ProgressDialog pDialog;
// URL to get contacts JSON
public int TOTAL_LIST_ITEMS = 50;
public int NUM_ITEMS_PAGE = 10;
private int noOfBtns;
private Button[] btns;
// JSON Node names
private static final String TAG_CONTACTS = "contacts";
private static final String TAG_ID = "id";
private static final String TAG_NAME = "name";
private static final String TAG_EMAIL = "email";
private static final String TAG_ADDRESS = "address";
private static final String TAG_GENDER = "gender";
private static final String TAG_PHONE = "phone";
private static final String TAG_PHONE_MOBILE = "mobile";
private static final String TAG_PHONE_HOME = "home";
private static final String TAG_PHONE_OFFICE = "office";
// contacts JSONArray
JSONArray contacts = null;
// Hashmap for ListView
ArrayList<HashMap<String, String>> contactList;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnSearch=(Button)findViewById(R.id.buttonSearch);
txtSearch=(EditText)findViewById(R.id.Searchtext);
}
public String gotourl()
{
final EditText txtSearch=(EditText)findViewById(R.id.Searchtext);
String ts=txtSearch.getText().toString();
String url = "http://latest.bloomapi.com/api/search?limit=50&offset=0&key1=last_name&op1=eq&value1="+ts;
return url ;
}
public void Searchfunction(View v)
{
Btnfooter();
//loadList(0);
CheckBtnBackGroud(0);
contactList = new ArrayList<HashMap<String, String>>();
ListView lv = getListView();
// Listview on item click listener
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// getting values from selected ListItem
String name = ((TextView) view.findViewById(R.id.name))
.getText().toString();
String cost = ((TextView) view.findViewById(R.id.email))
.getText().toString();
String description = ((TextView) view.findViewById(R.id.mobile))
.getText().toString();
// Starting single contact activity
Intent in = new Intent(getApplicationContext(),
SingleContactActivity.class);
in.putExtra(TAG_NAME, name);
in.putExtra(TAG_EMAIL, cost);
in.putExtra(TAG_PHONE_MOBILE, description);
startActivity(in);
}
});
// Calling async task to get json
new GetContacts().execute();
}
private void Btnfooter()
{
int val = TOTAL_LIST_ITEMS%NUM_ITEMS_PAGE;
val = val==0?0:1;
noOfBtns=TOTAL_LIST_ITEMS/NUM_ITEMS_PAGE+val;
LinearLayout ll = (LinearLayout)findViewById(R.id.btnLay);
btns =new Button[noOfBtns];
for(int i=0;i<noOfBtns;i++)
{
btns[i] = new Button(this);
btns[i].setBackgroundColor(getResources().getColor(android.R.color.transparent));
btns[i].setText(""+(i+1));
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
ll.addView(btns[i], lp);
final int j = i;
btns[j].setOnClickListener(new OnClickListener() {
public void onClick(View v)
{
//loadList(j);
CheckBtnBackGroud(j);
}
});
}
}
private void CheckBtnBackGroud(int index)
{
for(int i=0;i<noOfBtns;i++)
{
if(i==index)
{
btns[index].setBackgroundDrawable(getResources().getDrawable(R.drawable.box_green));
btns[i].setTextColor(getResources().getColor(android.R.color.white));
}
else
{
btns[i].setBackgroundColor(getResources().getColor(android.R.color.transparent));
btns[i].setTextColor(getResources().getColor(android.R.color.black));
}
}
}
private class GetContacts extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
// Showing progress dialog
pDialog = new ProgressDialog(MainActivity.this);
pDialog.setMessage("Please wait...");
pDialog.setCancelable(false);
pDialog.show();
}
@Override
protected Void doInBackground(Void... arg0) {
// Creating service handler class instance
ServiceHandler sh = new ServiceHandler();
// Making a request to url and getting response
String jsonStr = sh.makeServiceCall(gotourl(), ServiceHandler.GET);
Log.d("Response: ", "> " + jsonStr);
if (jsonStr != null) {
try {
JSONObject jsonObj = new JSONObject(jsonStr);
// Getting JSON Array node
contacts = jsonObj.getJSONArray("result");
// looping through All Contacts
for (int i = 0; i < contacts.length(); i++) {
Integer a = contacts.length();
Log.d("loop", a.toString());
JSONObject c = contacts.getJSONObject(i);
String id = c.getString("npi");
String name = c.getString("first_name");
String email = c.getString("last_name");
//String address = c.getString(TAG_ADDRESS);
String gender = c.getString("type");
// tmp hashmap for single contact
HashMap<String, String> contact = new HashMap<String, String>();
// adding each child node to HashMap key => value
contact.put("npi", id);
contact.put("first_name", name);
contact.put("last_name", email);
//contact.put(TAG_PHONE_MOBILE, mobile);
contact.put("type", gender);
// adding contact to contact list
contactList.add(contact);
}
} catch (JSONException e) {
e.printStackTrace();
}
} else {
Log.d("ServiceHandler", "Couldn't get any data from the url");
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
// Dismiss the progress dialog
if (pDialog.isShowing())
pDialog.dismiss();
/**
* Updating parsed JSON data into ListView
* */
ListAdapter adapter = new SimpleAdapter(
MainActivity.this, contactList,
R.layout.list_item, new String[] { "first_name", "last_name",
"type" }, new int[] { R.id.name,
R.id.email, R.id.mobile });
setListAdapter(adapter);
}
}}
I change the code. When i click next button[like 2,3,4,5]. showing first page data. Here is my modified code.Any help Appreciated :
public class MainActivity extends ListActivity {
private TextView title;
Context context;
Button btnSearch ;
EditText txtSearch;
private ListView listview;
private ProgressDialog pDialog;
// URL to get contacts JSON
public int TOTAL_LIST_ITEMS = 50;
public int NUM_ITEMS_PAGE = 10;
private int noOfBtns;
private Button[] btns;
// JSON Node names
private static final String TAG_CONTACTS = "contacts";
private static final String TAG_ID = "id";
private static final String TAG_NAME = "name";
private static final String TAG_EMAIL = "email";
private static final String TAG_ADDRESS = "address";
private static final String TAG_GENDER = "gender";
private static final String TAG_PHONE = "phone";
private static final String TAG_PHONE_MOBILE = "mobile";
private static final String TAG_PHONE_HOME = "home";
private static final String TAG_PHONE_OFFICE = "office";
// contacts JSONArray
JSONArray contacts = null;
// Hashmap for ListView
ArrayList<HashMap<String, String>> contactList;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnSearch=(Button)findViewById(R.id.buttonSearch);
txtSearch=(EditText)findViewById(R.id.Searchtext);
title = (TextView)findViewById(R.id.title);
}
public String gotourl()
{
final EditText txtSearch=(EditText)findViewById(R.id.Searchtext);
String ts=txtSearch.getText().toString();
String url = "http://latest.bloomapi.com/api/search?limit=50&offset=0&key1=last_name&op1=eq&value1="+ts;
return url ;
}
public void Searchfunction(View v)
{
Btnfooter();
CheckBtnBackGroud(0);
contactList = new ArrayList<HashMap<String, String>>();
ListView lv = getListView();
// Listview on item click listener
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
if(position%2==0)
{
view.setBackgroundColor(Color.parseColor("#F4FA58"));
}else
{
view.setBackgroundColor(Color.parseColor("#DA81F5"));
}
// getting values from selected ListItem
String name = ((TextView) view.findViewById(R.id.name))
.getText().toString();
String cost = ((TextView) view.findViewById(R.id.email))
.getText().toString();
String description = ((TextView) view.findViewById(R.id.mobile))
.getText().toString();
// Starting single contact activity
Intent in = new Intent(getApplicationContext(),
SingleContactActivity.class);
in.putExtra(TAG_NAME, name);
in.putExtra(TAG_EMAIL, cost);
in.putExtra(TAG_PHONE_MOBILE, description);
startActivity(in);
}
});
// Calling async task to get json
new GetContacts().execute();
}
private void Btnfooter()
{
int val = TOTAL_LIST_ITEMS%NUM_ITEMS_PAGE;
val = val==0?0:1;
noOfBtns=TOTAL_LIST_ITEMS/NUM_ITEMS_PAGE+val;
LinearLayout ll = (LinearLayout)findViewById(R.id.btnLay);
btns =new Button[noOfBtns];
for(int i=0;i<noOfBtns;i++)
{
btns[i] = new Button(this);
btns[i].setBackgroundColor(getResources().getColor(android.R.color.transparent));
btns[i].setText(""+(i+1));
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
ll.addView(btns[i], lp);
final int j = i;
btns[j].setOnClickListener(new OnClickListener() {
public void onClick(View v)
{
new GetContacts().execute();
CheckBtnBackGroud(j);
}
});
}
}
private void CheckBtnBackGroud(int index)
{
title.setText("Page "+(index+1)+" of "+noOfBtns);
for(int i=0;i<noOfBtns;i++)
{
if(i==index)
{
btns[index].setBackgroundDrawable(getResources().getDrawable(R.drawable.box_green));
btns[i].setTextColor(getResources().getColor(android.R.color.white));
}
else
{
btns[i].setBackgroundColor(getResources().getColor(android.R.color.transparent));
btns[i].setTextColor(getResources().getColor(android.R.color.black));
}
}
}
private class GetContacts extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
// Showing progress dialog
pDialog = new ProgressDialog(MainActivity.this);
pDialog.setMessage("Please wait...");
pDialog.setCancelable(false);
pDialog.show();
}
@Override
protected Void doInBackground(Void... arg0) {
// Creating service handler class instance
ServiceHandler sh = new ServiceHandler();
// Making a request to url and getting response
String jsonStr = sh.makeServiceCall(gotourl(), ServiceHandler.GET);
Log.d("Response: ", "> " + jsonStr);
if (jsonStr != null) {
try {
JSONObject jsonObj = new JSONObject(jsonStr);
int number = 0;
int start = number * NUM_ITEMS_PAGE;
// looping through All Contacts
// Getting JSON Array node
contacts = jsonObj.getJSONArray("result");
// looping through All Contacts
//for (int i = 0; i < contacts.length(); i++) {
for(int i=start;i<(start)+NUM_ITEMS_PAGE;i++) {
Integer a = contacts.length();
Log.d("loop", a.toString());
JSONObject c = contacts.getJSONObject(i);
String id = c.getString("npi");
String name = c.getString("first_name");
String email = c.getString("last_name");
String gender = c.getString("type");
// tmp hashmap for single contact
HashMap<String, String> contact = new HashMap<String, String>();
// adding each child node to HashMap key => value
contact.put("npi", id);
contact.put("first_name", name);
contact.put("last_name", email);
//contact.put(TAG_PHONE_MOBILE, mobile);
contact.put("type", gender);
// adding contact to contact list
contactList.add(contact);
}
} catch (JSONException e) {
e.printStackTrace();
}
} else {
Log.d("ServiceHandler", "Couldn't get any data from the url");
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
// Dismiss the progress dialog
if (pDialog.isShowing())
pDialog.dismiss();
/**
* Updating parsed JSON data into ListView
* */
ListAdapter adapter = new SimpleAdapter(
MainActivity.this, contactList,
R.layout.list_item, new String[] { "first_name", "last_name",
"type" }, new int[] { R.id.name,
R.id.email, R.id.mobile });
setListAdapter(adapter);
}
}}
Below is my code to show list view with pagination. There is two blue button for change pages.
You can customize according to you need.
Create UserCategory.java
package com.UserCategory;
import java.net.URL;
import java.util.ArrayList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
public class UserCategory extends Activity implements OnClickListener{
private final int PAGE_SIZE = 5;
private int StartingIndex = 0;
ArrayList<String> userClass=new ArrayList<String>();
int textlength=0;
private String lv_arr[];
private ListView lv1;
EditText searchText;
//Button Previous;
private String Machine[]={"Machine 1","Machine 2","Machine 3","Machine 4","Machine 5","Machine 6","Machine 7","Machine 8","Machine 9","Machine 10","Machine 11","Machine 12","Machine 1","Machine 2","Machine 3","Machine 4","Machine 5","Machine 6","Machine 7","Machine 8","Machine 9","Machine 10","Machine 11","Machine 12"};
ImageView next,Previous;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setContentView(R.layout.main);
lv1=(ListView)findViewById(R.id.ListView01);
searchText=(EditText)findViewById(R.id.et_Serchlist);
next=(ImageView)findViewById(R.id.btn_next);
Previous=(ImageView)findViewById(R.id.btn_previous);
next.setOnClickListener(this);
Previous.setOnClickListener(this);
//parsing();
lv1.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , Machine));
changeListViewModel(0);
}
private void changelist(int startingIndex) {
if(startingIndex < 0) {
Previous=(ImageView)findViewById(R.id.btn_previous);
ImageView back=(ImageView)findViewById(R.id.btn_Whiteprevious);
back.setVisibility(1);
Previous.setVisibility(4);
startingIndex = 0;
}else if(startingIndex >= userClass.size())
startingIndex -= PAGE_SIZE;
StartingIndex = startingIndex;
int endingIndex = startingIndex + PAGE_SIZE;
System.out.println("ending index"+endingIndex);
if(StartingIndex!=0){
Previous=(ImageView)findViewById(R.id.btn_previous);
ImageView back=(ImageView)findViewById(R.id.btn_Whiteprevious);
back.setVisibility(4);
Previous.setVisibility(1);
}
if(endingIndex == userClass.size()){
ImageView Forward=(ImageView)findViewById(R.id.btn_grewforward);
Forward.setVisibility(1);
next=(ImageView)findViewById(R.id.btn_next);
next.setVisibility(4);
}
if(endingIndex != userClass.size()){
ImageView Forward=(ImageView)findViewById(R.id.btn_grewforward);
Forward.setVisibility(4);
next=(ImageView)findViewById(R.id.btn_next);
next.setVisibility(1);
}
if(endingIndex > userClass.size()) endingIndex = userClass.size();
try {
String[] subSet = getDataSubset1(startingIndex, endingIndex);
System.out.println("subSet array"+subSet);
lv1.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , subSet));
} catch (Exception e) {
e.printStackTrace();
}
}
private String[] getDataSubset1(int startingIndex, int endingIndex){
String[] changeList = new String[endingIndex - startingIndex];
int index = -1;
for(int x = startingIndex; x < endingIndex; x++)
changeList[++index] = userClass.get(x);
return changeList;
}
private void changeListViewModel(int startingIndex){
if(startingIndex < 0) {
Previous=(ImageView)findViewById(R.id.btn_previous);
ImageView back=(ImageView)findViewById(R.id.btn_Whiteprevious);
back.setVisibility(1);
Previous.setVisibility(4);
startingIndex = 0;
}
else if(startingIndex >= Machine.length){
startingIndex -= PAGE_SIZE;
}
System.out.println("strating"+startingIndex);
System.out.println("startingIndex"+startingIndex);
StartingIndex = startingIndex;
int endingIndex = startingIndex + PAGE_SIZE;
System.out.println("endingIndex"+endingIndex);
if(StartingIndex!=0)
{
Previous=(ImageView)findViewById(R.id.btn_previous);
ImageView back=(ImageView)findViewById(R.id.btn_Whiteprevious);
back.setVisibility(4);
Previous.setVisibility(1);
}
if(endingIndex == userClass.size()){
ImageView Forward=(ImageView)findViewById(R.id.btn_grewforward);
Forward.setVisibility(1);
next=(ImageView)findViewById(R.id.btn_next);
next.setVisibility(4);
}
if(endingIndex != userClass.size()){
ImageView Forward=(ImageView)findViewById(R.id.btn_grewforward);
Forward.setVisibility(4);
next=(ImageView)findViewById(R.id.btn_next);
next.setVisibility(1);
}
System.out.println("ending index"+endingIndex);
if(endingIndex > Machine.length) {
endingIndex = Machine.length;
ImageView Forward=(ImageView)findViewById(R.id.btn_grewforward);
Forward.setVisibility(1);
next=(ImageView)findViewById(R.id.btn_next);
next.setVisibility(4);
}
String[] subSet = getDataSubset(startingIndex, endingIndex);
System.out.println("subSet main array"+subSet.length);
lv1.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , subSet));
}
private String[] getDataSubset(int startingIndex, int endingIndex){
String[] toRet = new String[endingIndex - startingIndex];
int index = -1;
System.out.println("index"+index);
for(int x = startingIndex; x < endingIndex; x++)
toRet[++index] = Machine[x];
return toRet;
}
private void parsing() {
// TODO Auto-generated method stub
try {
URL url = new URL("http://10.10.1.100/DogEventsWebService/EventService.svc/categories/1");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new InputSource(url.openStream()));
doc.getDocumentElement().normalize();
NodeList nodeList = doc.getElementsByTagName("UserCategory");
Machine = new String[nodeList.getLength()];
for (int i = 0; i < nodeList.getLength(); i++)
{
Node node = nodeList.item(i);
Machine[i] = new String();
Element fstElmnt = (Element) node;
NodeList nameList = fstElmnt.getElementsByTagName("ClassDescription");
Element nameElement = (Element) nameList.item(0);
nameList = nameElement.getChildNodes();
Machine[i]=((Node) nameList.item(0)).getNodeValue();
}
System.out.println("after for loop Machine"+Machine);
} catch (Exception e) {
System.out.println("XML Pasing Excpetion = " + e);
}
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.btn_next:
textlength=searchText.getText().length();
System.out.println("nextbutton"+textlength);
if(textlength==0){
changeListViewModel(StartingIndex + PAGE_SIZE);
}else{
changelist(StartingIndex + PAGE_SIZE);
}
break;
case R.id.btn_previous:
textlength=searchText.getText().length();
if(textlength==0){
changeListViewModel(StartingIndex - PAGE_SIZE);
}else{
changelist(StartingIndex - PAGE_SIZE);
}
break;
default:
break;
}
}
}
create main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<View android:layout_height="35dp"
android:layout_width="fill_parent"
android:background="#ffffff"/>
<TextView android:id="@+id/tv_header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello"
android:layout_alignParentTop="true"
android:layout_marginLeft="0dp"
android:textSize="25dp"/>
<EditText
android:id="@+id/et_Serchlist"
android:layout_height="35dp"
android:paddingLeft="19dp"
android:layout_marginLeft="60dp"
android:layout_toRightOf="@+id/tv_header"
android:maxLength="20"
android:maxLines="1"
android:inputType="text"
android:hint="Search"
android:textColor="#ffffff"
android:background="@drawable/my_border"
android:layout_width="100dip"/>
<ListView
android:id="@+id/ListView01"
android:layout_width="fill_parent"
android:textSize="4px"
android:layout_below="@+id/tv_header"
android:layout_above="@+id/btn_previous"
android:layout_height="wrap_content" />
<View android:layout_height="55dp"
android:layout_below="@+id/ListView0"
android:layout_alignParentBottom="true"
android:layout_width="fill_parent"
android:background="#ffffff"/>
<ImageView
android:src="@drawable/grewprevious"
android:id="@+id/btn_Whiteprevious"
android:layout_width="wrap_content"
android:layout_marginLeft="12dp"
android:layout_marginBottom="6dp"
android:layout_below="@+id/ListView0"
android:visibility="invisible"
android:layout_alignParentBottom="true"
android:layout_height="wrap_content"/>
<ImageView
android:src="@drawable/right"
android:id="@+id/btn_grewforward"
android:layout_width="wrap_content"
android:layout_marginLeft="259dp"
android:layout_marginBottom="6dp"
android:layout_below="@+id/ListView0"
android:visibility="invisible"
android:layout_alignParentBottom="true"
android:layout_height="wrap_content"/>
<ImageView
android:src="@drawable/backward"
android:id="@+id/btn_previous"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginLeft="12dp"
android:layout_marginBottom="6dp"
android:layout_below="@+id/ListView0"
android:onClick="backButtonClicked"/>
<ImageView android:src="@drawable/forward"
android:id="@+id/btn_next"
android:layout_width="80dp"
android:layout_marginBottom="6dp"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_below="@+id/ListView0"
android:layout_marginLeft="249dp"
android:text="Next"
android:onClick="nextButtonClicked"/>
</RelativeLayout>
Create userlist.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView android:id="@+id/tv_className"
android:layout_height="wrap_content"
android:layout_width="wrap_content"/>
</LinearLayout>
Add my_border.xml into Drawable folder:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="2dip" android:color="#ee777777" />
<solid android:color="#ee444444"/>
<padding
android:left="20dip"
android:top="2dip"
android:right="20dip"
android:bottom="2dip" />
<corners android:radius="15dip" />
![enter image description here][1]</shape>
If it give error for iamges then use any other images and run application.
Let me know it work for you.
Thanks
这篇关于在Android的列表视图分页的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!