Louai_M
جمعه 02 مرداد 1394, 19:48 عصر
سلام
من با استفاده از جیسون یک سری اطلاعات را در قالب آرایه از بانک اطلاعاتی فراخوانی می کنم تا اینجا درسته و هیچ مشکلی نداره اما وقتی تو اندروید کد های زیر را برای نمایش اطلاعات در یک لیست ویو نوشتم صفحه بازمیشه ولی هیچ چیزی نشون داده نمیشه مشکل از کجاست
من از اندروید استودیو استفاده می کنم.
یک سؤال دیگه چرا وقتی تو اندروید استودیو ListActivity رو extends میکنیم تو اجرا خطا میگیره و فقط ActionBarActivity رو قبول میکنه
با تشکر
import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.BasicHttpParams;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
/**
* Created by Novin Pendar on 07/16/2015.
*/
public class newsActivity extends ActionBarActivity {
String myJson;
private static final String TAG_RES = "result";
private static final String TAG_TITR = "titr";
private static final String TAG_CONTENT = "content";
static JSONArray jObj = null;
private String msg;
JSONArray Articles = null;
ArrayList<HashMap<String,String>> ArticlesList;
ListView list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_news);
list = (ListView) findViewById(R.id.dataget);
ArticlesList = new ArrayList<HashMap<String,String>>();
new NetCheck().execute();
}
private class NetCheck extends AsyncTask<String,String,Boolean>
{
private ProgressDialog nDialog;
@Override
protected void onPreExecute(){
super.onPreExecute();
nDialog = new ProgressDialog(newsActivity.this);
nDialog.setTitle("Checking Network");
nDialog.setMessage("Loading..");
nDialog.setIndeterminate(false);
nDialog.setCancelable(true);
nDialog.show();
}
/**
* Gets current device state and checks for working internet connection by trying Google.
**/
@Override
protected Boolean doInBackground(String... args){
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnected()) {
try {
URL url = new URL("http://www.google.com");
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setConnectTimeout(3000);
urlc.connect();
if (urlc.getResponseCode() == 200) {
return true;
}
} catch (MalformedURLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return false;
}
@Override
protected void onPostExecute(Boolean th){
if(th == true){
nDialog.dismiss();
getData();
}
else{
nDialog.dismiss();
Toast.makeText(getApplicationContext(), "Error in Network Connection", Toast.LENGTH_SHORT).show();
}
}
}
public void showList(){
try{
JSONObject jsonObj = new JSONObject(myJson);
Articles = jsonObj.getJSONArray(TAG_RES);
for(int i=0;i<Articles.length();i++){
JSONObject c = Articles.getJSONObject(i);
String titr = c.getString(TAG_TITR);
String content = c.getString(TAG_CONTENT);
HashMap<String,String> persons = new HashMap<String,String>();
persons.put(TAG_TITR,titr);
persons.put(TAG_CONTENT,content);
ArticlesList.add(persons);
}
ListAdapter adapter = new SimpleAdapter(
newsActivity.this, ArticlesList, R.layout.list_item,
new String[]{TAG_TITR,TAG_CONTENT},
new int[]{R.id.titr, R.id.content}
);
list.setAdapter(adapter);
}catch (JSONException e) {
e.printStackTrace();
}
}
public void getData(){
class GetDataJSON extends AsyncTask<String, Void, String>{
private ProgressDialog pDialog;
private InputStream inputStream = null;
private String page_output = "";
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(newsActivity.this);
pDialog.setTitle("درحال اتصال به سرور");
pDialog.setMessage("لطفاً منتظر بمانید ...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
@Override
protected String doInBackground(String... params) {
try{
DefaultHttpClient httpclient = new DefaultHttpClient(new BasicHttpParams());
HttpPost httppost = new HttpPost("http://***.*****/server.php");
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
inputStream = entity.getContent();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try{
// json is UTF-8 by default
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null)
{
sb.append(line + "\n");
}
inputStream.close();
page_output = sb.toString();
}catch (Exception e){
Log.e("Buffer Error", "Error converting result " + e.toString());
}
// try parse the string to a JSON object
try {
jObj = new JSONArray(page_output);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}
return page_output;
}
@Override
protected void onPostExecute(String page_output){
pDialog.dismiss();
myJson=page_output;
try{
JSONObject jsonObj = new JSONObject(myJson);
Articles = jsonObj.getJSONArray(TAG_RES);
for(int i=0;i<Articles.length();i++){
JSONObject c = Articles.getJSONObject(i);
String titr = c.getString(TAG_TITR);
String content = c.getString(TAG_CONTENT);
HashMap<String,String> persons = new HashMap<String,String>();
persons.put(TAG_TITR,titr);
persons.put(TAG_CONTENT,content);
ArticlesList.add(persons);
}
ListAdapter adapter = new SimpleAdapter(
newsActivity.this, ArticlesList, R.layout.list_item,
new String[]{TAG_TITR,TAG_CONTENT},
new int[]{R.id.titr, R.id.content}
);
list.setAdapter(adapter);
}catch (JSONException e) {
e.printStackTrace();
}
}
}
GetDataJSON g = new GetDataJSON();
g.execute();
}
من با استفاده از جیسون یک سری اطلاعات را در قالب آرایه از بانک اطلاعاتی فراخوانی می کنم تا اینجا درسته و هیچ مشکلی نداره اما وقتی تو اندروید کد های زیر را برای نمایش اطلاعات در یک لیست ویو نوشتم صفحه بازمیشه ولی هیچ چیزی نشون داده نمیشه مشکل از کجاست
من از اندروید استودیو استفاده می کنم.
یک سؤال دیگه چرا وقتی تو اندروید استودیو ListActivity رو extends میکنیم تو اجرا خطا میگیره و فقط ActionBarActivity رو قبول میکنه
با تشکر
import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.BasicHttpParams;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
/**
* Created by Novin Pendar on 07/16/2015.
*/
public class newsActivity extends ActionBarActivity {
String myJson;
private static final String TAG_RES = "result";
private static final String TAG_TITR = "titr";
private static final String TAG_CONTENT = "content";
static JSONArray jObj = null;
private String msg;
JSONArray Articles = null;
ArrayList<HashMap<String,String>> ArticlesList;
ListView list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_news);
list = (ListView) findViewById(R.id.dataget);
ArticlesList = new ArrayList<HashMap<String,String>>();
new NetCheck().execute();
}
private class NetCheck extends AsyncTask<String,String,Boolean>
{
private ProgressDialog nDialog;
@Override
protected void onPreExecute(){
super.onPreExecute();
nDialog = new ProgressDialog(newsActivity.this);
nDialog.setTitle("Checking Network");
nDialog.setMessage("Loading..");
nDialog.setIndeterminate(false);
nDialog.setCancelable(true);
nDialog.show();
}
/**
* Gets current device state and checks for working internet connection by trying Google.
**/
@Override
protected Boolean doInBackground(String... args){
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnected()) {
try {
URL url = new URL("http://www.google.com");
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setConnectTimeout(3000);
urlc.connect();
if (urlc.getResponseCode() == 200) {
return true;
}
} catch (MalformedURLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return false;
}
@Override
protected void onPostExecute(Boolean th){
if(th == true){
nDialog.dismiss();
getData();
}
else{
nDialog.dismiss();
Toast.makeText(getApplicationContext(), "Error in Network Connection", Toast.LENGTH_SHORT).show();
}
}
}
public void showList(){
try{
JSONObject jsonObj = new JSONObject(myJson);
Articles = jsonObj.getJSONArray(TAG_RES);
for(int i=0;i<Articles.length();i++){
JSONObject c = Articles.getJSONObject(i);
String titr = c.getString(TAG_TITR);
String content = c.getString(TAG_CONTENT);
HashMap<String,String> persons = new HashMap<String,String>();
persons.put(TAG_TITR,titr);
persons.put(TAG_CONTENT,content);
ArticlesList.add(persons);
}
ListAdapter adapter = new SimpleAdapter(
newsActivity.this, ArticlesList, R.layout.list_item,
new String[]{TAG_TITR,TAG_CONTENT},
new int[]{R.id.titr, R.id.content}
);
list.setAdapter(adapter);
}catch (JSONException e) {
e.printStackTrace();
}
}
public void getData(){
class GetDataJSON extends AsyncTask<String, Void, String>{
private ProgressDialog pDialog;
private InputStream inputStream = null;
private String page_output = "";
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(newsActivity.this);
pDialog.setTitle("درحال اتصال به سرور");
pDialog.setMessage("لطفاً منتظر بمانید ...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}
@Override
protected String doInBackground(String... params) {
try{
DefaultHttpClient httpclient = new DefaultHttpClient(new BasicHttpParams());
HttpPost httppost = new HttpPost("http://***.*****/server.php");
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
inputStream = entity.getContent();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try{
// json is UTF-8 by default
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null)
{
sb.append(line + "\n");
}
inputStream.close();
page_output = sb.toString();
}catch (Exception e){
Log.e("Buffer Error", "Error converting result " + e.toString());
}
// try parse the string to a JSON object
try {
jObj = new JSONArray(page_output);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}
return page_output;
}
@Override
protected void onPostExecute(String page_output){
pDialog.dismiss();
myJson=page_output;
try{
JSONObject jsonObj = new JSONObject(myJson);
Articles = jsonObj.getJSONArray(TAG_RES);
for(int i=0;i<Articles.length();i++){
JSONObject c = Articles.getJSONObject(i);
String titr = c.getString(TAG_TITR);
String content = c.getString(TAG_CONTENT);
HashMap<String,String> persons = new HashMap<String,String>();
persons.put(TAG_TITR,titr);
persons.put(TAG_CONTENT,content);
ArticlesList.add(persons);
}
ListAdapter adapter = new SimpleAdapter(
newsActivity.this, ArticlesList, R.layout.list_item,
new String[]{TAG_TITR,TAG_CONTENT},
new int[]{R.id.titr, R.id.content}
);
list.setAdapter(adapter);
}catch (JSONException e) {
e.printStackTrace();
}
}
}
GetDataJSON g = new GetDataJSON();
g.execute();
}