1
2
3
4
5
6
7
8
9
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
|
package
com.kwstu.palmjn;
import
java.util.List;
import
models.News;
import
myadapter.NewsListAdapter;
import
android.app.Activity;
import
android.app.ProgressDialog;
import
android.content.Intent;
import
android.os.Bundle;
import
android.os.Handler;
import
android.os.Message;
import
android.view.LayoutInflater;
import
android.view.View;
import
android.widget.AdapterView;
import
android.widget.AdapterView.OnItemClickListener;
import
android.widget.Button;
import
android.widget.ImageButton;
import
android.widget.ListView;
/**
* 初学android开发经验总结,感觉对初学者很有必要
* 初学android所必需的的知道的,开发安卓程序使用ListView等列表控件,
* 一般使用异步加载网络数据、显示加载进度、还有加载更多、返回、ListView填充内容试图模板几个功能是必须有的,以下是程序基本框架
* By <a href="www.kwstu.com">kwstu</a> QQ:404926765
*/
public
class
TestActivity
extends
Activity
implements
OnItemClickListener {
private
ImageButton return_pre;
// 返回首页按钮
private
List<News> listnews;
// 接受网络加载数据类
private
ProgressDialog progressDialog;
//显示加载任务进度控件
private
NewsListAdapter adapter;
//适配器,定义在这个地方可以很容易获取里面所有条目的ID,加载更多是用
private
Button loadMoreButton;
//加载更多按钮
private
View loadMoreView;
//加载更多按钮试图
private
ListView lv;
//用于显示加载数据的控件
@Override
public
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_index);
// 程序开始加载网络数据
progress(
"加载中"
,
"请稍等......"
);
//更多
LayoutInflater inflater = getLayoutInflater();
loadMoreView = getLayoutInflater()
.inflate(R.layout.newslearnmore,
null
);
loadMoreButton = (Button) loadMoreView
.findViewById(R.id.loadMoreButton);
loadMoreButton.setOnClickListener(
new
View.OnClickListener() {
@Override
public
void
onClick(View v) {
loadMoreButton.setText(
"正在加载中..."
);
// 设置按钮文字
handler.postDelayed(
new
Runnable() {
@Override
public
void
run() {
loadMoreData();
adapter.notifyDataSetChanged();
loadMoreButton.setText(
"查看更多..."
);
// 恢复按钮文字
}
},
2000
);
}
});
// 返回
return_pre = (ImageButton) findViewById(R.id.reindex);
return_pre.setOnClickListener(
new
OnClickListener() {
public
void
onClick(View v) {
finish();
}
});
}
// 线程返回消息处理类
Handler handler =
new
Handler() {
@Override
public
void
handleMessage(Message msg) {
Bundle data =
null
;
// 如果返回msg.what=100停止任务加载对话框
if
(msg.what >=
100
) {
progressDialog.cancel();
}
switch
(msg.what) {
case
100
:
// 资讯默认页面加载
break
;
case
1
:
break
;
case
2
:
break
;
}
// progressDialog.setProgress(msg.what);// 设置进度完成程度
super
.handleMessage(msg);
}
};
// 初始化progressDialog
public
void
progress(String title, String message) {
progressDialog =
new
ProgressDialog(
this
);
beginThread thread =
new
beginThread();
progressDialog.setMessage(message);
progressDialog.setTitle(title);
progressDialog.show();
thread.start();
}
// 获取视频数据
class
beginThread
extends
Thread {
public
void
run() {
handler.sendEmptyMessage(
0
);
try
{
// 从服务器上获取栏目数据
String jsonString =
""
;
Message message =
new
Message();
// 创建消息
Bundle data =
new
Bundle();
// 创建数据
data.putString(
"jsonString"
, jsonString);
// 向bundle中添加数据
message.what =
1
;
// 设置消息的what值
message.setData(data);
// 存放数据
handler.sendMessage(message);
// 发送消息
}
catch
(Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
// 加载更多
private
void
loadMoreData() {
int
count = adapter.getCount();
//加载更多网络数据
for
(
int
i =
0
; i < listnews.size(); i++) {
adapter.addNewsItem(listnews.get(i));
}
if
(listnews.size() <
20
)
lv.removeFooterView(loadMoreView);
}
// 点击ListView列表条目时执行
@Override
public
void
onItemClick(AdapterView<?> arg0, View arg1,
int
arg2,
long
arg3) {
// TODO Auto-generated method stub
News news = adapter.getItem(arg2);
Intent intent =
new
Intent();
// 创建Intent
intent.setClass(TestActivity.
this
, NewsContent.
class
);
Bundle bundle =
new
Bundle();
// 创建数据Bundle
bundle.putString(
"newid"
, news.getID());
intent.putExtras(bundle);
// 存放数据
startActivity(intent);
// 启动Activity
}
}
|
zz:初学android所必需的的知道的android新闻系统程序基本结构
最新推荐文章于 2022-10-26 09:24:45 发布