I have 3 fragment pages app, in first and third fragment i have listviews and in second fragment only a textview(infoz). The code works fine, but i can't add json string to the textview in second fragment i had tried few ways but i didn't make it. TextView infoz = (TextView) getView().findViewById(R.id.infoz); this is a textview i want to populate with string from array, how can i do it?
here is the code
public class Fragment2 extends Fragment {
private ArrayList<FeedItem> feedList;
private ArrayList<SecondFeedItem> secondfeedList;
private ListView feedListView;
private ListView secondfeedListView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.home, container, false);
String url = "";
new DownloadFilesTask().execute(url);
return rootView;
}
public void updateList() {
TextView infoz = (TextView) getView().findViewById(R.id.infoz);
feedListView= (ListView)getActivity().findViewById(R.id.custom_list);
secondfeedListView = (ListView)getActivity().findViewById(R.id.second_list);
feedListView.setAdapter(new CustomListAdapter(getActivity(), feedList));
feedListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
Object o = feedListView.getItemAtPosition(position);
FeedItem newsData = (FeedItem) o;
Intent intent = new Intent(getActivity(), FeedDetailsActivity.class);
intent.putExtra("feed", newsData);
startActivity(intent);
}
});
secondfeedListView.setAdapter(new secondCustomListAdapter (getActivity(), secondfeedList));
secondfeedListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
Object o = secondfeedListView.getItemAtPosition(position);
secondFeedItem secondData = (secondFeedItem) o;
Intent intent = new Intent(getActivity(), secondFeedDetailsActivity.class);
intent.putExtra("secondfeed", secondData);
startActivity(intent);
}
});
}
public class DownloadFilesTask extends AsyncTask<String, Integer, Void> {
@Override
protected void onProgressUpdate(Integer... values) {
}
@Override
protected void onPostExecute(Void result) {
if (null != feedList) {
updateList();
}
if (null != badfeedList) {
updateList();
}
}
@Override
protected Void doInBackground(String... params) {
String url = params[0];
// getting JSON string from URL
JSONObject json = getJSONFromUrl(url);
//parsing json data
parseJson(json);
return null;
}
}
public JSONObject getJSONFromUrl(String url) {
InputStream is = null;
JSONObject jObj = null;
String json = null;
// Making HTTP request
try {
// defaultHttpClient
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
json = sb.toString();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
jObj = new JSONObject(json);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}
// return JSON String
return jObj;
}
public void parseJson(JSONObject json) {
try {
// parsing json object
if (json.getString("status").equalsIgnoreCase("ok")) {
JSONArray posts = json.getJSONArray("posts");
String inffoz;
feedList = new ArrayList<FeedItem>();
for (int i = 0; i < posts.length(); i++) {
JSONObject post = (JSONObject) posts.getJSONObject(i);
FeedItem item = new FeedItem();
item.setTitle(post.getString("title"));
item.setDate(post.getString("description"));
item.setId(post.getString("id"));
item.setUrl(post.getString("url"));
item.setContent(post.getString("description"));
item.setsecondtitle(post.getString("description"));
JSONArray attachments = post.getJSONArray("attachments");
item.setsecondtitle(post.getString("secondtitle"));
if (null != attachments && attachments.length() > 0) {
JSONObject attachment = attachments.getJSONObject(0);
if (attachment != null)
item.setAttachmentUrl(attachment.getString("url"));
}
feedList.add(item);
}
}
if (json.getString("status").equalsIgnoreCase("ok")) {
JSONArray posts = json.getJSONArray("posts");
secondfeedList = new ArrayList<secondFeedItem>();
for (int i = 0; i < posts.length(); i++) {
JSONObject post = (JSONObject) posts.getJSONObject(i);
secondFeedItem item = new secondFeedItem();
item.setTitle(post.getString("title"));
item.setDate(post.getString("description"));
item.setId(post.getString("id"));
item.setUrl(post.getString("url"));
item.setContent(post.getString("description"));
JSONArray attachments = post.getJSONArray("attachments");
if (null != attachments && attachments.length() > 0) {
JSONObject attachment = attachments.getJSONObject(0);
if (attachment != null)
item.setAttachmentUrl(attachment.getString("url"));
}
secondfeedList.add(item);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
json
{
"status": "ok",
"count": 10,
"posts": [
{
"id": 2398,
"type": "post",
"slug": "",
"url": "",
"status": "publish",
"title": "bla",
"description": "bla",
"date": "2013-06-11 ",
"content": "dadadadaddaadad",
"secondbadtitle": "blaaaaaaa",
"attachments": [
{
"id": 2342,
"url": "",
"slug": "",
"title": "",
"description": "",
"content": "dadadadaddaadad",
"caption": "ssss",
"parent": 2398,
"mime_type": "image/jpg",
"images": []
}
],
"comment_count": 3
}
}
TRy this.......
List list=new ArrayList();
JSONObject jObject = new JSONObject(str_response_starter);
JSONArray json_array_item_id = jObject.getJSONArray("itemid");
System.out.println("json array item id"+json_array_item_id);
JSONArray json_array_item_name = jObject.getJSONArray("itemname");
System.out.println("json array item name"+json_array_item_name);
JSONArray json_array_item_type = jObject.getJSONArray("type");
System.out.println("json array item type"+json_array_item_type);
JSONArray json_array_item_cost = jObject.getJSONArray("cost");
System.out.println("json array item cost"+json_array_item_cost);
It will be better for us if you give format of JSON. By the use of collection class it is so easy task. If you got any issue then please let me know
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.