import
android.os.Bundle;
import
android.os.Handler;
import
android.support.v7.app.AppCompatActivity;
import
android.util.Log;
import
android.view.View;
import
android.view.ViewGroup;
import
android.widget.BaseAdapter;
import
android.widget.Button;
import
android.widget.ListView;
import
com.loopj.android.http.AsyncHttpClient;
import
com.loopj.android.http.JsonHttpResponseHandler;
import
com.loopj.android.http.RequestParams;
import
org.json.JSONArray;
import
org.json.JSONObject;
import
java.util.ArrayList;
import
cz.msebera.android.httpclient.Header;
public
class
MainActivity
extends
AppCompatActivity {
public
static
final
String TAG =
"MainActivity"
;
ListView listView;
WordsInfoAdapter wiAdapter;
Handler handler =
new
Handler();
ArrayList<WordsInfoItem> itemList;
int
totalPage;
int
curPage;
boolean
mLockListView;
Button button;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listView);
wiAdapter =
new
WordsInfoAdapter();
listView.setAdapter(wiAdapter);
curPage =
1
;
mLockListView =
true
;
getWordsInfo(curPage);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(
new
View.OnClickListener() {
@Override
public
void
onClick(View v) {
if
(totalPage > curPage) {
curPage++;
}
else
{
curPage =
1
;
}
getWordsInfo(curPage);
}
});
}
class
WordsInfoAdapter
extends
BaseAdapter {
ArrayList<WordsInfoItem> itemList =
new
ArrayList<WordsInfoItem>();
public
void
setItemList(ArrayList<WordsInfoItem> itemList) {
this
.itemList = itemList;
}
@Override
public
int
getCount() {
return
itemList.size();
}
@Override
public
Object getItem(
int
position) {
return
itemList.get(position);
}
@Override
public
long
getItemId(
int
position) {
return
position;
}
@Override
public
View getView(
int
position, View convertView, ViewGroup parent) {
WordsInfoView view =
null
;
if
(convertView ==
null
) {
view =
new
WordsInfoView(getApplicationContext());
}
else
{
view = (WordsInfoView) convertView;
}
view.setWordsInfoItem(itemList.get(position));
return
view;
}
}
private
void
getWordsInfo(
int
page) {
curPage = page;
AsyncHttpClient client =
new
AsyncHttpClient();
RequestParams params =
new
RequestParams();
params.put(
"page"
,page);
client.post(
"서버주소"
, params,
new
JsonHttpResponseHandler() {
@Override
public
void
onFailure(
int
statusCode, Header[] headers, Throwable throwable, JSONObject errorResponse) {
Log.d(TAG,
"onFailure : "
);
}
@Override
public
void
onSuccess(
int
statusCode, Header[] headers, JSONObject response) {
Log.d(TAG,
"onSuccess : "
);
try
{
Log.d(TAG, response.getString(
"res"
) +
", "
+ response.getInt(
"total_page"
));
if
(response.getString(
"res"
).equals(
"ok"
)) {
totalPage = response.getInt(
"total_page"
);
itemList =
new
ArrayList<WordsInfoItem>();
JSONArray jsonArray =
new
JSONArray(response.getString(
"list"
));
for
(
int
i =
0
; i < jsonArray.length(); i++) {
JSONObject obj =
new
JSONObject(jsonArray.getString(i));
itemList.add(
new
WordsInfoItem(obj.getString(
"grade_type"
), obj.getString(
"pub_name"
), obj.getString(
"vname"
), obj.getString(
"wdate"
), obj.getString(
"who"
)));
}
wiAdapter.setItemList(itemList);
wiAdapter.notifyDataSetChanged();
}
else
{
Log.d(TAG,
"데이터 가져오기 실패"
);
}
}
catch
(Exception e) {
e.printStackTrace();
}
}
});
}
}
import
android.content.Context;
import
android.util.AttributeSet;
import
android.view.LayoutInflater;
import
android.widget.LinearLayout;
import
android.widget.TextView;
public
class
WordsInfoView
extends
LinearLayout{
TextView vnameTextView, pub_nameTextView, grade_typeTextView, wdateTextView, whoTextView;
public
WordsInfoView(Context context) {
super
(context);
init(context);
}
public
WordsInfoView(Context context, AttributeSet attrs) {
super
(context, attrs);
init(context);
}
private
void
init(Context context) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.words_info,
this
,
true
);
vnameTextView = (TextView) findViewById(R.id.vnameTextView);
pub_nameTextView = (TextView) findViewById(R.id.pub_nameTextView);
grade_typeTextView = (TextView) findViewById(R.id.grade_typeTextView);
wdateTextView = (TextView) findViewById(R.id.wdateTextView);
whoTextView = (TextView) findViewById(R.id.whoTextView);
}
public
void
setWordsInfoItem(WordsInfoItem item) {
String vname = item.getVname();
String pub_name = item.getPub_name();
String grade_type = item.getGrade_type();
String wdate = item.getWdate();
String who = item.getWho();
vnameTextView.setText(vname);
pub_nameTextView.setText(pub_name);
grade_typeTextView.setText(grade_type);
wdateTextView.setText(wdate);
whoTextView.setText(who);
}
}