MainActivity.class
public class MainActivity extends Activity implements IXListViewListener {
private XListView mListView;
private ArrayList<Art> items = new ArrayList<Art>();
private Handler mHandler;
private int start = 0;
private ListView lv;
private Main_item mAdapter;
private String id;
private ImageView iamge;
private int key = 10;
private int f=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
iamge = (ImageView) findViewById(R.id.i_main_image);
initSlidingMenu();
MyAsyncTask1 m = new MyAsyncTask1();
m.execute("http://121.42.8.95:8090/EasyApp/mobile/JSONRequest?req=al&key="
+ id + "&start=0&size=10&graduation=2");
}
private void onLoad() {
mListView.stopRefresh();
mListView.stopLoadMore();
mListView.setRefreshTime("刚刚");
}
@Override
public void onRefresh() {
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
start=f+10;
items.clear();
geneItems(start, 10);
f=start;
onLoad();
}
}, 2000);
}
protected void geneItems(int start, int key) {
// TODO Auto-generated method stub
MyAsyncTask1 m = new MyAsyncTask1();
m.execute("http://121.42.8.95:8090/EasyApp/mobile/JSONRequest?req=al&key="
+ id + "&start=" +start + "&size=" + key + "&graduation=2");
}
@Override
public void onLoadMore() {
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
if(start>0){
start-=10;
geneItems(start, 10);
}else{
start=0;
}
mAdapter.notifyDataSetChanged();
onLoad();
}
}, 2000);
}
private void initSlidingMenu() {
// 初始化SlidingMenu对象
final SlidingMenu menu = new SlidingMenu(this);
// 设置侧滑方式为左侧侧滑
menu.setMode(SlidingMenu.RIGHT);
/*
* 设置拖拽模式 SlidingMenu.TOUCHMODE_FULLSCREEN全屏触摸有效
* SlidingMenu.TOUCHMODE_MARGIN 拖拽边缘有效 SlidingMenu.TOUCHMODE_NONE
* 不响应触摸事件
*/
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
// 设置阴影的宽度
menu.setShadowWidthRes(R.dimen.shadow_width);
// 设置阴影的图片
menu.setShadowDrawable(R.drawable.shadow);
// 设置sldingMenu的剩余大小---=内容显示页对应的dp大小
menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
// 设置滑动时的渐变程度
menu.setFadeDegree(0.35f);
// 使SlidingMenu附加在Activity右边
// SlidingMenu.SLIDING_CONTENT 将侧滑栏设置为在内容位置
// SlidingMenu.SLIDING_WINDOW 将侧滑栏设置为在整个窗口呈现
menu.attachToActivity(this, SlidingMenu.SLIDING_WINDOW);
// 设置SlidingMenu关联的布局
menu.setMenu(R.layout.menu);
lv = (ListView) menu.findViewById(R.id.l_lv);
MyAsyncTask m = new MyAsyncTask();
m.execute("http://121.42.8.95:8090/EasyApp/mobile/JSONRequest?req=cl&graduation=2");
iamge.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
menu.toggle();
}
});
}
class MyAsyncTask extends AsyncTask<String, Void, Info> {
@Override
protected Info doInBackground(String... params) {
// TODO Auto-generated method stub
return getData(params[0]);
}
@Override
protected void onPostExecute(final Info result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
SpindmenuAdapter adapter = new SpindmenuAdapter(MainActivity.this,
result.contents);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
key=10;
start=0;
items.clear();
mAdapter=null;
MyAsyncTask1 m = new MyAsyncTask1();
id = result.contents.get(arg2).id;
m.execute("http://121.42.8.95:8090/EasyApp/mobile/JSONRequest?req=al&key="
+ result.contents.get(arg2).id
+ "&start=0&size=10&graduation=2");
}
});
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
}
class MyAsyncTask1 extends AsyncTask<String, Void, Articles> {
private ProgressDialog d;
@Override
protected Articles doInBackground(String... params) {
// TODO Auto-generated method stub
return getData1(params[0]);
}
@Override
protected void onPostExecute(final Articles result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
mListView = (XListView) findViewById(R.id.xListView);
mListView.setPullLoadEnable(true);
items.addAll(result.articles);
if(items.isEmpty()){
start=start-10;
geneItems(start, 10);
}
if(mAdapter==null){
mAdapter = new Main_item(MainActivity.this, items);
mListView.setAdapter(mAdapter);
}
// mListView.setPullLoadEnable(false);
// mListView.setPullRefreshEnable(false);
mListView.setXListViewListener(MainActivity.this);
mHandler = new Handler();
mListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
Intent intent = new Intent(MainActivity.this,
SecondActivity.class);
intent.putExtra("id", result.articles.get(arg2-1).id);
startActivity(intent);
}
});
d.cancel();
}
@Override
protected void onPreExecute() {
d = new ProgressDialog(MainActivity.this);
d.setTitle("正在加载......");
d.show();
super.onPreExecute();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public Articles getData1(String string) {
// TODO Auto-generated method stub
try {
HttpURLConnection conn = (HttpURLConnection) new URL(string)
.openConnection();
conn.setReadTimeout(6000);
conn.setConnectTimeout(6000);
conn.setRequestMethod("GET");
if (conn.getResponseCode() == 200) {
InputStream is = conn.getInputStream();
int len;
byte[] arr = new byte[1024];
StringBuffer buffer = new StringBuffer();
while ((len = is.read(arr)) != -1) {
buffer.append(new String(arr, 0, len));
}
Gson g = new Gson();
Articles i = g.fromJson(buffer.toString(), Articles.class);
return i;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public Info getData(String string) {
// TODO Auto-generated method stub
try {
HttpURLConnection conn = (HttpURLConnection) new URL(string)
.openConnection();
conn.setReadTimeout(6000);
conn.setConnectTimeout(6000);
conn.setRequestMethod("GET");
if (conn.getResponseCode() == 200) {
InputStream is = conn.getInputStream();
int len;
byte[] arr = new byte[1024];
StringBuffer buffer = new StringBuffer();
while ((len = is.read(arr)) != -1) {
buffer.append(new String(arr, 0, len));
}
Gson g = new Gson();
Info i = g.fromJson(buffer.toString(), Info.class);
System.out.println(i.contents.get(0).name);
return i;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}