ورود

View Full Version : مشکل در نمایش دیتابیس در listview



leila71
پنج شنبه 03 دی 1394, 08:44 صبح
سلام خدمت دوستان گل
یک مشکلی داشتم که اگر راهنمایی کنید یک روز دعاتون میکنم
من یک برنامه ای رو نوشتم که هنگام اجرا وقتی رو دکمه اول کلیک می کنی به وب سرور وصل میشه بعد یک جدول ایجاد میکنه با همان فیلدهای دیتابیس و وقتی روی دکمه دوم کلیک میکنی داده های دیتابیس رو در داخل همان جدولی که درست کرده بود میریزه(دیتابیس داخلی) مشکلم اینه که نمی تونم داده های دیتابیس داخلی رو تو listview نمایش بدم خواهش میکنم راهنمایی کنید
news_json.php سمت سرور هست
بقیه کلاسها رم پیوست کردم
با تشکر فراوان

MainActivity.java
package com.example.testpasak;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import Parser.Myjson_Parser;
import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;

public class MainActivity extends Activity {

SQLiteDB sqlite_obj;
Button get, store;
InputStream is = null;

String url = "http://10.0.2.2/news/news_json.php";
private ArrayList<String> titlelist;
private ArrayList<String> desclist;

Myjson_Parser jParser = new Myjson_Parser();

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);



sqlite_obj = new SQLiteDB(MainActivity.this);

get = (Button) findViewById(R.id.button1);
store = (Button) findViewById(R.id.button2);

get.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {

new JSONParse().execute();
Toast.makeText(getBaseContext(), "Success : Webservice Call", Toast.LENGTH_SHORT).show();
}
});

store.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View arg0) {

sqlite();
Toast.makeText(getBaseContext(), "Stored in SQLite DB", Toast.LENGTH_SHORT).show();
}
});
}

private void sqlite() {

sqlite_obj.open();

sqlite_obj.deleteAll();

for(int i=0; i<titlelist.size(); i++) {

sqlite_obj.insert(titlelist.get(i).toString(), desclist.get(i).toString());
}

sqlite_obj.close();
}

class JSONParse extends AsyncTask<String,Void,ArrayList<String>> {
JSONArray mid;
JSONArray mname;
@Override
protected ArrayList<String> doInBackground(String... args) {


JSONObject object = jParser.getJSONFromUrl(url);
Log.d("TAG", "object :"+object.toString());


try {
mid = object.getJSONArray("id");
mname = object.getJSONArray("name");


} catch (JSONException e1) {
e1.printStackTrace();
}

int NumOfObjects = mname.length();
Log.d("TAG", "NumOfObjects :"+NumOfObjects);



return null;

}

protected void onPostExecute(ArrayList<String> we){

titlelist = new ArrayList<String>();
desclist = new ArrayList<String>();
if (mid != null) {


int len = mid.length();
Log.d("TAG", "length :"+len);

for (int i=0;i<len;i++){


try {
titlelist.add(mid.get(i).toString());
desclist.add(mname.get(i).toString());

} catch (JSONException e) {
e.printStackTrace();
}
}}

}
}

}


SQLiteDB.java
package com.example.testpasak;

import android.content.ContentValues;
import android.content.Context;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class SQLiteDB {

public static final String KEY_ID = "id";
public static final String KEY_NAME = "name";

private static final String TAG = "DBAdapter";
private static final String DATABASE_NAME = "SQLiteDB";

private static final String DATABASE_TABLE = "sample";
private static final int DATABASE_VERSION = 1;

private static final String DATABASE_CREATE =
"create table sample (id text primary key, name text not null);";

private final Context context;
private DatabaseHelper DBHelper;
private SQLiteDatabase db;

public SQLiteDB(Context ctx) {

this.context = ctx;
DBHelper = new DatabaseHelper(context);
}

private static class DatabaseHelper extends SQLiteOpenHelper {

DatabaseHelper(Context context) {

super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {

try {
db.execSQL(DATABASE_CREATE);
} catch (SQLException e) {
e.printStackTrace();
}
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
+ newVersion + ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS sample");
onCreate(db);
}
}

//---open SQLite DB---
public SQLiteDB open() throws SQLException {

db = DBHelper.getWritableDatabase();
return this;
}

//---close SQLite DB---
public void close() {

DBHelper.close();
}

//---insert data into SQLite DB---
public long insert(String id, String name) {

ContentValues initialValues = new ContentValues();
initialValues.put(KEY_ID, id);
initialValues.put(KEY_NAME, name);

return db.insert(DATABASE_TABLE, null, initialValues);
}

//---Delete All Data from table in SQLite DB---
public void deleteAll() {

db.delete(DATABASE_TABLE, null, null);
}
}

news_json.php

<?php
$connection = mysql_connect("localhost", "root", "");
mysql_select_db("db", $connection);
mysql_query("set names 'utf8'");
$result=mysql_query("SELECT * FROM tbl", $connection);

$id = array();
$name=array();

while($sqlRow=mysql_fetch_array($result))
{
array_push($id, $sqlRow['id']);
array_push($name, $sqlRow['name']);
}
////////////////////// END MYSQL SELECT /////////////////////
header('Content-Type: application/json');
$data = array("id"=>$id, "name"=>$name);
$myJosn = json_encode($data);
echo $myJosn;
?>