final String line1=msg1[position]; final String line2=msg2[position]; final String line3=msg3[position]; final int lineNo = position; holder.button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Message message = new Message(); message.what = 1; Bundle b=new Bundle(); b.putString("line1", line1); b.putString("line2", line2); b.putString("line3", line3); b.putInt("lineNo", lineNo); message.setData(b); handler.sendMessage(message); } }); } catch (Exception e) { Toast.makeText(ListMainActivity.this, e.getMessage(),Toast.LENGTH_LONG).show(); }
return view; } }
static class ReferenceHolder { public ImageView image; public TextView text1; public TextView text2; public TextView text3; public Button button; public LinearLayout layout; } }
@Override
public int getCount() {
return count;
}所以它只能显示10条。
public void setLoadingLayout() {
ProgressBar progressBar = new ProgressBar(this);
progressBar.setPadding(0, 0, 15, 0);
listView.addFooterView(progressBar);
TextView textView = new TextView(this);
textView.setText("加载中...");
textView.setGravity(Gravity.CENTER_VERTICAL);
listView.addFooterView(textView);
}
import android.graphics.Bitmap;
import android.graphics.Color;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.AbsListView;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AbsListView.OnScrollListener;public class ListMainActivity extends ListActivity
{
// 当前Activity中的ListView
private ListView listView = null;
private int lastItem = 0;
private ImageAdapter mMyAdapter; ListViewData dataListViewData;
Object[] dataList=null;
LinearLayout loadingLayout = null; private Bitmap[] bit1;
private String[] msgIds1;
private String[] msgIds2;
private String[] msgIds3;
@Override
public void onCreate(Bundle savedInstanceState)
{
try {
super.onCreate(savedInstanceState);
listView=getListView(); //这里读取数据,需要把Image文件夹下一些图片拷到sd卡上!根目录即可!
dataListViewData=new ListViewData();
setLoadingLayout();
new readTask().execute(0);
} catch (Exception e) {
Toast.makeText(this, e.toString(), Toast.LENGTH_LONG);
}
}
public void setLoadingLayout() {
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.HORIZONTAL);
ProgressBar progressBar = new ProgressBar(this);
progressBar.setPadding(0, 0, 15, 0);
layout.addView(progressBar);
TextView textView = new TextView(this);
textView.setText("加载中...");
textView.setGravity(Gravity.CENTER_VERTICAL);
layout.addView(textView);
layout.setGravity(Gravity.CENTER);
loadingLayout = new LinearLayout(this);
loadingLayout.addView(layout);
loadingLayout.setGravity(Gravity.CENTER);
}
private class scrollListener implements OnScrollListener {
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
// 当listView中没有数据,或者数据超过10条,或者不是10的整数倍(即数据不足)时隐藏“更多”并取消onScroll事件的绑定 if (mMyAdapter.getCount() >= 10 || mMyAdapter.getCount() % 10 > 0
|| mMyAdapter.getCount() == 0) {
listView.removeFooterView(loadingLayout);
listView.setOnScrollListener(null);
}
lastItem = firstVisibleItem + visibleItemCount - 1;// 这里减一是因为有FootView
} @Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if ((lastItem+1) == mMyAdapter.getCount()
&& scrollState == OnScrollListener.SCROLL_STATE_IDLE) {
// 进行翻页操作
new scrollTask().execute(OnScrollListener.SCROLL_STATE_IDLE);
} }
}
public class readTask extends AsyncTask<Object, Void, Void>
{
@Override
protected Void doInBackground(Object... arg0)
{
int page=Integer.parseInt(arg0[0].toString());
msgIds1=dataListViewData.MsgFirst(page+1);
msgIds2=dataListViewData.MsgSecond(page+1);
msgIds3=dataListViewData.MsgThird(page+1);
bit1=dataListViewData.Bit(page+1);
return null;
} @Override
protected void onPostExecute(Void result)
{
listView.addFooterView(loadingLayout);
mMyAdapter = new ImageAdapter(msgIds1,msgIds2,msgIds3,bit1);
listView.setAdapter(mMyAdapter);
listView.setOnScrollListener(new scrollListener());
}
}
public class scrollTask extends AsyncTask<Object, Void, Void>
{
@Override
protected Void doInBackground(Object... arg0) {
try {
int page=Integer.parseInt(arg0[0].toString());
msgIds1=dataListViewData.MsgFirst(page+2);
msgIds2=dataListViewData.MsgSecond(page+2);
msgIds3=dataListViewData.MsgThird(page+2);
bit1=dataListViewData.Bit(page+2);
} catch (Exception e) {
Toast.makeText(ListMainActivity.this, e.toString(), Toast.LENGTH_LONG);
}
return null;
} @Override
protected void onPostExecute(Void result) {
mMyAdapter.notifyDataSetChanged();
}
}
public Handler handler = new Handler()
{ public void handleMessage(Message msg)
{
try {
switch (msg.what) {
case 1:
String line1=(String)msg.getData().getString("line1");
String line2=(String)msg.getData().getString("line2");
String line3=(String)msg.getData().getString("line3");
int lineNo=(int)msg.getData().getInt("lineNo");
Toast.makeText(ListMainActivity.this, "选中第"+(lineNo+1)+"行,隐藏内容:\n"+line3+
"\n正文内容:\n"+line1+"\n"+line2,Toast.LENGTH_LONG).show();
break;
}
} catch (Exception e) {
Toast.makeText(ListMainActivity.this, e.getMessage(),Toast.LENGTH_LONG).show();
}
super.handleMessage(msg);
}
};
public class ImageAdapter extends BaseAdapter
{
/*声明变量*/
int mGalleryItemBackground;
private Bitmap[] bit;
private String[] msg1;
private String[] msg2;
private String[] msg3;
/*ImageAdapter的构造符*/
public ImageAdapter(String[] Msg1,String[] Msg2,String[] Msg3,Bitmap[] Bit1)
{ this.bit=Bit1;
this.msg1=Msg1;
this.msg2=Msg2;
this.msg3=Msg3;
} int count=10;
@Override
public int getCount() {
return count;
}
/*一定要重写的方法getItem,传回position*/
@Override
public Object getItem(int position) {
return position;
} /*一定要重写的方法getItemId,传并position*/
@Override
public long getItemId(int position) {
return position;
} /*几定要重写的方法getView,传并几View对象*/
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View view;
view = getLayoutInflater().inflate(R.layout.list_row, null);
try {
ReferenceHolder holder = new ReferenceHolder();
holder.image=(ImageView)view.findViewById(R.id.imageView01);
holder.text1=(TextView)view.findViewById(R.id.txtLink1);//初始化TextView
holder.text2=(TextView)view.findViewById(R.id.txtLink2);//初始化TextView
holder.text3=(TextView)view.findViewById(R.id.txtLink3);//初始化TextView
holder.button=(Button)view.findViewById(R.id.btSelect01);//初始化Button
view.setTag(holder);
holder.image.setImageBitmap(bit[position]);//设置图片
holder.image.setScaleType(ImageView.ScaleType.FIT_CENTER);
holder.text1.setText(msg1[position]);//设置内容
holder.text1.setTextSize(16);//设置字体大小
holder.text1.setTextColor(Color.WHITE);//设置字体颜色 holder.text2.setText(msg2[position]);//设置内容
holder.text2.setTextSize(16);//设置字体大小
holder.text2.setTextColor(Color.WHITE);//设置字体颜色
holder.text3.setText(msg3[position]);//设置内容
holder.button.setText("下载");
final String line1=msg1[position];
final String line2=msg2[position];
final String line3=msg3[position];
final int lineNo = position;
holder.button.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
Message message = new Message(); message.what = 1;
Bundle b=new Bundle();
b.putString("line1", line1);
b.putString("line2", line2);
b.putString("line3", line3);
b.putInt("lineNo", lineNo);
message.setData(b);
handler.sendMessage(message);
}
});
} catch (Exception e) {
Toast.makeText(ListMainActivity.this, e.getMessage(),Toast.LENGTH_LONG).show();
}
return view; }
}
static class ReferenceHolder {
public ImageView image;
public TextView text1;
public TextView text2;
public TextView text3;
public Button button;
public LinearLayout layout;
}
}
import android.graphics.BitmapFactory;
public class ListViewData
{
String[] msgFirst1={
"01 第一行内容","02 第一行内容","03 第一行内容","04 第一行内容","05 第一行内容",
"06 第一行内容","07 第一行内容","08 第一行内容","09 第一行内容","10 第一行内容"};
String[] msgFirst2={
"11 第一行内容","12 第一行内容","13 第一行内容","14 第一行内容","15 第一行内容",
"16 第一行内容","17 第一行内容","18 第一行内容","19 第一行内容","20 第一行内容"};
String[] msgFirst3={
"21 第一行内容","22 第一行内容","23 第一行内容","24 第一行内容","25 第一行内容",
"26 第一行内容","27 第一行内容","28 第一行内容","29 第一行内容","30 第一行内容"};
String[] msgFirst4={
"31 第一行内容","32 第一行内容","33 第一行内容","34 第一行内容","35 第一行内容",
"36 第一行内容","37 第一行内容","38 第一行内容","39 第一行内容","40 第一行内容"};
String[] msgFirst5={
"41 第一行内容","42 第一行内容","43 第一行内容","44 第一行内容","45 第一行内容",
"46 第一行内容","47 第一行内容","48 第一行内容","49 第一行内容","50 第一行内容"};
String[] msgSecond1={
"01 第二行内容","02 第二行内容","03 第二行内容","04 第二行内容","05 第二行内容",
"06 第二行内容","07 第二行内容","08 第二行内容","09 第二行内容","10 第二行内容"};
String[] msgSecond2={
"11 第二行内容","12 第二行内容","13 第二行内容","14 第二行内容","15 第二行内容",
"16 第二行内容","17 第二行内容","18 第二行内容","19 第二行内容","20 第二行内容"};
String[] msgSecond3={
"21 第二行内容","22 第二行内容","23 第二行内容","24 第二行内容","25 第二行内容",
"26 第二行内容","27 第二行内容","28 第二行内容","29 第二行内容","30 第二行内容"};
String[] msgSecond4={
"31 第二行内容","32 第二行内容","33 第二行内容","34 第二行内容","35 第二行内容",
"36 第二行内容","47 第二行内容","38 第二行内容","39 第二行内容","40 第二行内容"};
String[] msgSecond5={
"41 第二行内容","42 第二行内容","43 第二行内容","44 第二行内容","45 第二行内容",
"46 第二行内容","47 第二行内容","48 第二行内容","49 第二行内容","50 第二行内容"};
String[] msgThird1={
"01 隐藏内容","02 隐藏内容","03 隐藏内容","04 隐藏内容","05 隐藏内容",
"06 隐藏内容","07 隐藏内容","08 隐藏内容","09 隐藏内容","10 隐藏内容"};
String[] msgThird2={
"11 隐藏内容","12 隐藏内容","13 隐藏内容","14 隐藏内容","15 隐藏内容",
"16 隐藏内容","17 隐藏内容","18 隐藏内容","19 隐藏内容","20 隐藏内容"};
String[] msgThird3={
"21 隐藏内容","22 隐藏内容","23 隐藏内容","24 隐藏内容","25 隐藏内容",
"26 隐藏内容","27 隐藏内容","28 隐藏内容","29 隐藏内容","30 隐藏内容"};
String[] msgThird4={
"31 隐藏内容","32 隐藏内容","33 隐藏内容","34 隐藏内容","35 隐藏内容",
"36 隐藏内容","37 隐藏内容","38 隐藏内容","39 隐藏内容","40 隐藏内容"};
String[] msgThird5={
"41 隐藏内容","42 隐藏内容","43 隐藏内容","44 隐藏内容","45 隐藏内容",
"46 隐藏内容","47 隐藏内容","48 隐藏内容","49 隐藏内容","50 隐藏内容"};
String[] imagepath={
"/sdcard/abc.jpg","/sdcard/milan.jpg","/sdcard/basa.jpg","/sdcard/manlian.jpg","/sdcard/abc.jpg"};
Bitmap bit01=BitmapFactory.decodeFile(imagepath[0]);
Bitmap bit02=BitmapFactory.decodeFile(imagepath[1]);
Bitmap bit03=BitmapFactory.decodeFile(imagepath[2]);
Bitmap bit04=BitmapFactory.decodeFile(imagepath[3]);
Bitmap bit05=BitmapFactory.decodeFile(imagepath[4]);
Bitmap[] bit1={bit01,bit02,bit03,bit04,bit05,bit01,bit02,bit03,bit04,bit05};
Bitmap[] bit2={bit01,bit02,bit03,bit04,bit05,bit01,bit02,bit03,bit04,bit05};
Bitmap[] bit3={bit01,bit02,bit03,bit04,bit05,bit01,bit02,bit03,bit04,bit05};
Bitmap[] bit4={bit01,bit02,bit03,bit04,bit05,bit01,bit02,bit03,bit04,bit05};
Bitmap[] bit5={bit01,bit02,bit03,bit04,bit05,bit01,bit02,bit03,bit04,bit05};
String[] msgFirstAll={
"01 第一行内容","02 第一行内容","03 第一行内容","04 第一行内容","05 第一行内容",
"06 第一行内容","07 第一行内容","08 第一行内容","09 第一行内容","10 第一行内容",
"11 第一行内容","12 第一行内容","13 第一行内容","14 第一行内容","15 第一行内容",
"16 第一行内容","17 第一行内容","18 第一行内容","19 第一行内容","20 第一行内容",
"21 第一行内容","22 第一行内容","23 第一行内容","24 第一行内容","25 第一行内容",
"26 第一行内容","27 第一行内容","28 第一行内容","29 第一行内容","30 第一行内容",
"31 第一行内容","32 第一行内容","33 第一行内容","34 第一行内容","35 第一行内容",
"36 第一行内容","37 第一行内容","38 第一行内容","39 第一行内容","40 第一行内容",
"41 第一行内容","42 第一行内容","43 第一行内容","44 第一行内容","45 第一行内容",
"46 第一行内容","47 第一行内容","48 第一行内容","49 第一行内容","50 第一行内容"};
String[] msgSecondAll={
"01 第二行内容","02 第二行内容","03 第二行内容","04 第二行内容","05 第二行内容",
"06 第二行内容","07 第二行内容","08 第二行内容","09 第二行内容","10 第二行内容",
"11 第二行内容","12 第二行内容","13 第二行内容","14 第二行内容","15 第二行内容",
"16 第二行内容","17 第二行内容","18 第二行内容","19 第二行内容","20 第二行内容",
"21 第二行内容","22 第二行内容","23 第二行内容","24 第二行内容","25 第二行内容",
"26 第二行内容","27 第二行内容","28 第二行内容","29 第二行内容","30 第二行内容",
"31 第二行内容","32 第二行内容","33 第二行内容","34 第二行内容","35 第二行内容",
"36 第二行内容","47 第二行内容","38 第二行内容","39 第二行内容","40 第二行内容",
"41 第二行内容","42 第二行内容","43 第二行内容","44 第二行内容","45 第二行内容",
"46 第二行内容","47 第二行内容","48 第二行内容","49 第二行内容","50 第二行内容"};
String[] msgThirdAll={
"01 隐藏内容","02 隐藏内容","03 隐藏内容","04 隐藏内容","05 隐藏内容",
"06 隐藏内容","07 隐藏内容","08 隐藏内容","09 隐藏内容","10 隐藏内容",
"11 隐藏内容","12 隐藏内容","13 隐藏内容","14 隐藏内容","15 隐藏内容",
"16 隐藏内容","17 隐藏内容","18 隐藏内容","19 隐藏内容","20 隐藏内容",
"21 隐藏内容","22 隐藏内容","23 隐藏内容","24 隐藏内容","25 隐藏内容",
"26 隐藏内容","27 隐藏内容","28 隐藏内容","29 隐藏内容","30 隐藏内容",
"31 隐藏内容","32 隐藏内容","33 隐藏内容","34 隐藏内容","35 隐藏内容",
"36 隐藏内容","37 隐藏内容","38 隐藏内容","39 隐藏内容","40 隐藏内容",
"41 隐藏内容","42 隐藏内容","43 隐藏内容","44 隐藏内容","45 隐藏内容",
"46 隐藏内容","47 隐藏内容","48 隐藏内容","49 隐藏内容","50 隐藏内容"};
Bitmap[] bitAll={
bit01,bit02,bit03,bit04,bit05,bit01,bit02,bit03,bit04,bit05,
bit01,bit02,bit03,bit04,bit05,bit01,bit02,bit03,bit04,bit05,
bit01,bit02,bit03,bit04,bit05,bit01,bit02,bit03,bit04,bit05,
bit01,bit02,bit03,bit04,bit05,bit01,bit02,bit03,bit04,bit05,
bit01,bit02,bit03,bit04,bit05,bit01,bit02,bit03,bit04,bit05};
public String[] MsgFirst(int num)
{
String[] msg=null;
switch(num)
{
case 1:
msg = msgFirst1;
break;
case 2:
msg = msgFirst2;
break;
case 3:
msg = msgFirst3;
break;
case 4:
msg = msgFirst4;
break;
case 5:
msg = msgFirst5;
break;
}
return msg;
}
public String[] MsgSecond(int num)
{
String[] msg=null;
switch(num)
{
case 1:
msg = msgSecond1;
break;
case 2:
msg = msgSecond2;
break;
case 3:
msg = msgSecond3;
break;
case 4:
msg = msgSecond4;
break;
case 5:
msg = msgSecond5;
break;
}
return msg;
}
public String[] MsgThird(int num)
{
String[] msg=null;
switch(num)
{
case 1:
msg = msgThird1;
break;
case 2:
msg = msgThird2;
break;
case 3:
msg = msgThird3;
break;
case 4:
msg = msgThird4;
break;
case 5:
msg = msgThird5;
break;
}
return msg;
}
public Bitmap[] Bit(int num)
{
Bitmap[] msg=null;
switch(num)
{
case 1:
msg = bit1;
break;
case 2:
msg = bit2;
break;
case 3:
msg = bit3;
break;
case 4:
msg = bit4;
break;
case 5:
msg = bit5;
break;
}
return msg;
}
}