私のアクティビティから、私はMovieTask
をAsyncTask
まで拡張して呼び出しています。 doInBackground
のメソッドMovieTask
の中で正常に解析されたサーバーからJsonの応答を取得します。ArrayAdapterのgetViewをオーバーライドして3つのTextviewを埋めます
私は自分のアクティビティでリストビューを持っており、ArrayAdapter
を拡張するMovieListAdapter
を使用してリストビューを作成したいとします。
すべてのビュー(行)について、3 TextView
を入力したいと思います。私はの方法をオーバーライドして、MovieListAdapter
を埋めています。 しかし、データをgetView
メソッドに送信する方法を自分のアクティビティからgetView
に変換する方法を理解できません。たとえばListView
ためAdapterView
上
public class MovieTask extends AsyncTask<String, Void, String>{
@Override
protected String doInBackground(String... urls) {
//I HAVE GOT THE JSON DATA THAT CONTAINS AN ARRAY..
//EACH ENTRY IN ARRAY SHOULD BE FILLED IN A SINGLE ROW IN LISTVIEW
getMovieDataFromJson(result);
}
private void getMovieDataFromJson(String JsonString) throws JSONException {
JSONObject jsonObject = new JSONObject(JsonString);
JSONArray results = jsonObject.getJSONArray("results");
for (int i=0; i<results.length(); i++){
String title = results.getJSONObject(i).getString("original_title");
String date = results.getJSONObject(i).getString("release_date");
long id = results.getJSONObject(i).getLong("id");
double vote = results.getJSONObject(i).getDouble("vote_average");
//HERE I NEED TO CALL THE GETVIEW METHOD SO THAT IT FILLS THE ROW OF THE LISTVIEW WITH THESE VALUES - title, date and vote
}
}
MovieListAdapter.java
public class MovieListAdapter extends ArrayAdapter<String > {
public MovieListAdapter(Context context, int resource, int textViewResourceId, List<String> objects) {
super(context, resource, textViewResourceId, objects);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// I NEED TO PREPARE EACH ROW OF LISTVIEW HERE
//EVERY ROW CONTAINS 3 TEXTVIEWS WHICH I NEED TO FILL
//BUT HOW DO I SEND DATA TO FILL THE TEXTVIEW ?
}
}
ありがとうございました!ありがとうございました! –