81 ارسال در این موضوع قرار دارد

توی این پست میخوایم طریقه کار با دیتابیس خارجی رو اموزش بدیم.

برای این کار با نرم افزار SQLite Expert Personal یا هر نرم افزاری که راحت بودین دیتابیس و درست می کنیم.

توی این برنامه دیتابیس ExternalDB رو با یک جدول به نام tbl1 و دو فیلد به نامهای Id  و Name ایجاد کردیم.

برنامه نویسی اندروید

و داده های مورد نظر را توی جدول وارد میکنیم.

برنامه نویسی اندروید

کارمون با دیتابیس خارجی تموم شد حالا برنامه نویسی رو شروع می کنیم.

پروژه جدیدی ایجاده کرده و دیتابیسی که درست کرده بودیم و توی پوشه asset قرار میدیم.

فایل Database.java رو ایجاد کرده و کد زیر رو توی اون تایپ می کنیم.

package com.p30droid.externaldatabase;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.util.ArrayList;

import java.util.List;

import android.content.ContentValues;

import android.content.Context;

import android.database.Cursor;

import android.database.SQLException;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteDatabase.CursorFactory;

import android.database.sqlite.SQLiteException;

import android.database.sqlite.SQLiteOpenHelper;

public class Database extends SQLiteOpenHelper {

    String DB_PATH = null;

    public static String DB_NAME = "ExternalDB";

    private SQLiteDatabase myDataBase;

    private final Context myContext;

    /**

     * Constructor Takes and keeps a reference of the passed context in order to

     * access to the application assets and resources.

     *

     * @param context

     */

    public Database(Context context) {

        super(context, DB_NAME, null, 2);

        this.myContext = context;

        DB_PATH = "/data/data/" + context.getPackageName() + "/" + "databases/";

    }

    public void createDataBase() throws IOException {

        boolean dbExist = checkDataBase();

        if (dbExist) {

            // do nothing - database already exist

        } else {

            // By calling this method and empty database will be created into

            // the default system path

            // of your application so we are gonna be able to overwrite that

            // database with our database.

            this.getReadableDatabase();

            try {

                copyDataBase();

            } catch (IOException e) {

                throw new Error("Error copying database");

            }

        }

    }

   

    private boolean checkDataBase() {

        SQLiteDatabase checkDB = null;

        try {

            String myPath = DB_PATH + DB_NAME;

            checkDB = SQLiteDatabase.openDatabase(myPath, null,

                    SQLiteDatabase.OPEN_READONLY);

        } catch (SQLiteException e) {

            // database does't exist yet.

        }

        if (checkDB != null) {

            checkDB.close();

        }

        return checkDB != null ? true : false;

    }

    /**

     * Copies your database from your local assets-folder to the just created

     * empty database in the system folder, from where it can be accessed and

     * handled. This is done by transfering bytestream.

     * */

    private void copyDataBase() throws IOException {

        // Open your local db as the input stream

        InputStream myInput = myContext.getAssets().open(DB_NAME);

        // Path to the just created empty db

        String outFileName = DB_PATH + DB_NAME;

        // Open the empty db as the output stream

        OutputStream myOutput = new FileOutputStream(outFileName);

        // transfer bytes from the inputfile to the outputfile

        byte[] buffer = new byte[1024];

        int length;

        while ((length = myInput.read(buffer)) > 0) {

            myOutput.write(buffer, 0, length);

        }

        // Close the streams

        myOutput.flush();

        myOutput.close();

        myInput.close();

    }

    public void openDataBase() throws SQLException {

        // Open the database

        String myPath = DB_PATH + DB_NAME;

        // SQLiteDatabase.NO_LOCALIZED_COLLATORS

        myDataBase = SQLiteDatabase.openDatabase(myPath, null,

                SQLiteDatabase.OPEN_READONLY

                        | SQLiteDatabase.NO_LOCALIZED_COLLATORS

                        | SQLiteDatabase.CREATE_IF_NECESSARY);

    }

    @Override

    public synchronized void close() {

        if (myDataBase != null)

            myDataBase.close();

        super.close();

    }

    // return cursor

    public Cursor query(String table, String[] columns, String selection,

            String[] selectionArgs, String groupBy, String having,

            String orderBy) {

        return myDataBase.query("pwp_singers", null, null, null, null, null,

                null);

    }

    @Override

    public void onCreate(SQLiteDatabase arg0) {

        // TODO Auto-generated method stub

       

    }

    @Override

    public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {

        // TODO Auto-generated method stub

       

    }

}

 

 

خط 21 اسم دیتابیس و قرار دادیم.توابع دیگه هم مربوط به باز کردن،بستن،چک کردن وجود دیتابیس و ... هست(لازم به توضیح بود بگین توضیح بدمش:shy:)

توی فایل activity_main.xml یه لیست ویو قرار میدیم.

توی فایلMainActivity.java کد زیر و تایپ می کنیم.

package com.p30droid.externaldatabase;

import java.io.IOException;

import java.util.ArrayList;

import java.util.HashMap;

import android.os.Bundle;

import android.widget.ArrayAdapter;

import android.widget.ListAdapter;

import android.widget.ListView;

import android.app.Activity;

import android.database.Cursor;

import android.database.SQLException;

import android.database.sqlite.SQLiteDatabase;

public class MainActivity extends Activity {

    Database myDbHelper;

    SQLiteDatabase db;

    ListAdapter adapter;

    ArrayList> data;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        ListView lst=(ListView) findViewById(R.id.listView1);

        Load_Database();

        db = myDbHelper.getReadableDatabase();

        Cursor    c = db.rawQuery("select * from tbl1", null);

            data = new ArrayList>();

            for (; c.moveToNext() {

                HashMap map = new HashMap();

                String id = c.getString(c.getColumnIndex("Id"));

                String name = c.getString(c.getColumnIndex("Name"));

                map.put("id", id);

                map.put("name", name);

                data.add(map);

            }

            adapter = new list_view(this, data);

            lst.setAdapter(adapter);

           

    }

    private void Load_Database() throws Error {

        myDbHelper = new Database(MainActivity.this);

        try {

            myDbHelper.createDataBase();

        } catch (IOException ioe) {

            throw new Error("Unable to create database");

        }

        try {

            myDbHelper.openDataBase();

        } catch (SQLException sqle) {

            throw sqle;

        }

    }

}

 

 

خط 25 دیتابیس و چک میکنیم که ایجاد شده یا نه.اگه هست بازش کنه اگه نه ایجاد میکنه.

خط 27 اسم جدول و نوشتیم تا اطلاعات اونو بخونیم.

خط 32و 33 فیلدهایی که میخوایم و قرار دادیم  و در اخر هم با اداپتور اونو توی لیست ویو میریزیم.

خط 38 هم از لیست ویو سفارشی استفاده کردیم که اموزشش تو سایت هست .

اینم فایلهاش

فایل list_view.java

package com.p30droid.externaldatabase;

import java.util.ArrayList;

import java.util.HashMap;

import android.app.Activity;

import android.content.Context;

import android.content.SharedPreferences;

import android.content.res.AssetManager;

import android.graphics.Color;

import android.graphics.Typeface;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.TextView;

public class list_view extends BaseAdapter {

   

    private Activity activity;

    private ArrayList> data;

    private LayoutInflater inflate;

    ViewHolder holder;

    public list_view(Activity a, ArrayList> d) {

        // TODO Auto-generated constructor stub

        activity = a;

        data = d;

        inflate = (LayoutInflater) activity

                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

       

    }

    @Override

    public int getCount() {

        // TODO Auto-generated method stub

        return data.size();

    }

    @Override

    public Object getItem(int position) {

        // TODO Auto-generated method stub

        return position;

    }

    @Override

    public long getItemId(int position) {

        // TODO Auto-generated method stub

        return position;

    }

    @Override

    public View getView(int arg0, View view, ViewGroup arg2) {

        // TODO Auto-generated method stub

        View v1 = view;

        if (v1 == null) {

            v1 = inflate.inflate(R.layout.list_view, null);

            holder = new ViewHolder();

            holder.txt_name = (TextView) v1.findViewById(R.id.txt_name);

            holder.txt_id = (TextView) v1.findViewById(R.id.txt_id);

            holder.txt_id.setVisibility(View.GONE);

           

            v1.setTag(holder);

        } else {

            holder = (ViewHolder) v1.getTag();

        }

        HashMap song = new HashMap();

        song = data.get(arg0);

        holder.txt_id.setText(song.get("id"));

        holder.txt_name.setText(song.get("name"));

        return v1;

       

    }

    static class ViewHolder {

        TextView txt_name;

        TextView txt_id;

       

    }

}

 

 

فایل list_view.xml
 

<?xml version="1.0" encoding="utf-8"?>

    android:layout_width="fill_parent"

    android:layout_height="fill_parent" >

   

        android:id="@+id/txt_name"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignParentRight="true"

        android:layout_alignParentTop="true"

        android:layout_marginRight="22dp"

        android:layout_marginTop="30dp" />

   

        android:id="@+id/txt_id"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignTop="@+id/txt_name"

        android:layout_marginRight="96dp"

        android:layout_toLeftOf="@+id/txt_name" />

و خروجی کار

برنامه نویسی اندروید

سورس برنامه

2 کاربر پسند شده است

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام . من این جا مشکل دارم لطفا کمک کنید (عکس) : 

[align=center]797x438http://p30droid.com/Uploader/do.php?img=332[/img][/align]

متن خطا : Syntax error , insert "; Statement" to complete ForStatement

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
ببخشید دوست عزیز این خط و اصلاح کنین

[shcode=java]for (; c.moveToNext() ; ) {[/shcode]

کاراکترها کنار هم شکلک درست شدن از توی کد حذف شده.بین کاراکترها فاصله گذاشتم.اگه جای دیگه ای ارور داد سمپل و اخر اموزش گذاشتم میتونید از اون استفاده کنین

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
ببخشید دوست عزیز این خط و اصلاح کنین

[shcode=java]for (; c.moveToNext() ; ) {[/shcode]

کاراکترها کنار هم شکلک درست شدن از توی کد حذف شده.بین کاراکترها فاصله گذاشتم.اگه جای دیگه ای ارور داد سمپل و اخر اموزش گذاشتم میتونید از اون استفاده کنین

فقط چند تا فاصله میخواست منو اینقدر گیج کرده بود . خودش میگفت سمی کالم ; یا پرانتز بگذار گیج کرد منو :shy:

خیلی ممنون

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام خیلی ممنون

من هم دیتابیس خارجی دارم با همین برنامه ساختم و الان تو برنامه گذاشتم نزدیک 1500 مطلب هست اگه من بخوام تقسیم کنم موضوهامو و به چند بخش تقسیم کنم

 مثلا 10 قسمت هر قسمت 15 تا امیدوارم منظورمو فهمیده باشید

منتظر جوابتون هستم

تشکر

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
سلام

یعنی میخواین گروه بندی کنین؟

واسه گروه بندی تو دیتابیس یه جدول گروه اضافه کنین و ایدی هر گروه و توی جدول مطلب هاتون بذارین

روش استفادشم مثل همینه فرقی نداره

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام متشکرم که پاسخ سوال ها و میزارین

من برای همین پروژه می خوام توی یه صفحه ی دیگه به پایگاه داده اینسرت کنم اما کدام درست کار نمی کنه میشه لطف کنید ویه نگاهی به صفحه ام بندازین متشکر

http://p30droid.com/Uploader/do.php?id=353

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

ممنون از اموزشتون فقط دو سوال چرا مقدار ایدی رو برای تکست ویو فرستادنین با اینکه نمایشش نمیدیم دوم اینکه بخایم کلیک کنیم روی ایتم های لیست ویو باید چه تغییراتی داد کد رو ؟

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
سلام

خب الان واسه همین کاری که میخواین انجام بدین لازمه. شما توی رویداد کلیک لیست تون مقدار ایدی رو بگیرین و باهاش کارهای دیگه ای انجام بدین

[shcode=java]lst_data.setOnItemClickListener(new OnItemClickListener() {

            @Override

            public void onItemClick(AdapterView<?> arg0, View view, int position,

                    long arg3) {

                // TODO Auto-generated method stub

               

               

                String id = ((TextView) view.findViewById(R.id.txt_id)).getText().toString();

Toast.makeText(getApplicationContext(), id,Toast.LENGTH_LONG).show();

            }[/shcode]

مقدار ایدی که داشتمو گرفتم و با toast نشونش دادم

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

ممنون از لطفتون فقط یه مشکل وقتی دیتا میخام وارد کنم توی sqlexpert مثلا میخام دیتای با ایدی 3 وارد کنم ردیف دیام میافته وسط دیتا اولی و سومی و recno میشه 2 و همه

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
سلام recno مهم نیست فیلدیه که ماله خود نرم افزاره شما وقتی میخوای دیتاها رو نشون بدی بر اساس ایدی مرتب کن

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

ممنونم من یه سوال دیگه داشتم من توی برنامه ام چنتا باتن دارم که روی هرکدوم کلیک میکنیم یه لیست ویو باز میشه که دیتاهاشو از دیتابیس میگیره حالا چیکار کنم که از یک لیست ویو برای کل باتنها استفاده کنم و توی دیتابیسهم یدونه تیبل بیشتر تعریف نکنم؟

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

شما میتونید با متد putExtra برای رویداد کلیک هر باتن مقدار متفوتی را به اکتیویتی لیست ویو بفرستید و بر اساس اون مقدار اطلاعات لیست ویو نمایش داده بشه.

همچنین توی جدول دیتابیستون یک فیلد تعریف کنید که دسته بندی کنید اطلاعات رو؛ مثلاً اگه مقدار فید 1بود اطلاعات باتن اول اگه مقدارش 2 بود باتن 2 و ...

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

شما میتونید با متد putExtra برای رویداد کلیک هر باتن مقدار متفوتی را به اکتیویتی لیست ویو بفرستید و بر اساس اون مقدار اطلاعات لیست ویو نمایش داده بشه.

همچنین توی جدول دیتابیستون یک فیلد تعریف کنید که دسته بندی کنید اطلاعات رو؛ مثلاً اگه مقدار فید 1بود اطلاعات باتن اول اگه مقدارش 2 بود باتن 2 و ...

من میخام با توجه به مقدار idبفرستم data رو مثلن از یک تا 20 برای باتن یک و از 20 تا 40 برای باتن دوم ولی اینکه بعد از حلقه   for (; c.moveToNext();) {مقدار id رو تفکیک کنم نمیدونم چه جوری


من اومدم شرط گذاشتم وچند ArrayList>(); تعریف کردم و هر قسمت از دیتابیسو تو یه ارای لیست ریختم نمیدونم اینکار درست هست یا نه؟

شما میتونید با متد putExtra برای رویداد کلیک هر باتن مقدار متفوتی را به اکتیویتی لیست ویو بفرستید و بر اساس اون مقدار اطلاعات لیست ویو نمایش داده بشه.

همچنین توی جدول دیتابیستون یک فیلد تعریف کنید که دسته بندی کنید اطلاعات رو؛ مثلاً اگه مقدار فید 1بود اطلاعات باتن اول اگه مقدارش 2 بود باتن 2 و ...

من میخام با توجه به مقدار idبفرستم data رو مثلن از یک تا 20 برای باتن یک و از 20 تا 40 برای باتن دوم ولی اینکه بعد از حلقه   for (; c.moveToNext();) {مقدار id رو تفکیک کنم نمیدونم چه جوری

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام

خب الان واسه همین کاری که میخواین انجام بدین لازمه. شما توی رویداد کلیک لیست تون مقدار ایدی رو بگیرین و باهاش کارهای دیگه ای انجام بدین

[shcode=java]lst_data.setOnItemClickListener(new OnItemClickListener() {

            @Override

            public void onItemClick(AdapterView<?> arg0, View view, int position,

                    long arg3) {

                // TODO Auto-generated method stub

               

               

                String id = ((TextView) view.findViewById(R.id.txt_id)).getText().toString();

Toast.makeText(getApplicationContext(), id,Toast.LENGTH_LONG).show();

            }[/shcode]

مقدار ایدی که داشتمو گرفتم و با toast نشونش دادم

با سلام خدمت دوستان.

چون من تازه کار هستم متوجه نشدم این کد رو کجا وارد کنم و تو کدوم اکتیویتی وارد کنم.می خوام رو یکی از ایتم های لیست ویو کلیک کنم و مطلب رو انتخاب کنم دوستان اگه امکان داره خیلی اماتور توضیح بدید

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام

این کد رو

[shcode=java]lst.setOnItemClickListener(new OnItemClickListener() {

 

            @Override

            public void onItemClick(AdapterView<?> arg0, View view, int position,

                    long arg3) {

                // TODO Auto-generated method stub

                

                

                String id = ((TextView) view.findViewById(R.id.txt_id)).getText().toString();

Toast.makeText(getApplicat​ionContext(), id,Toast.LENGTH_LONG).show();

            }

});[/shcode]

بعد این خط بذارید

[shcode=java]  lst.setAdapter(adapter);[/shcode]

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام

این کد رو

[shcode=java]lst.setOnItemClickListener(new OnItemClickListener() {

 

            @Override

            public void onItemClick(AdapterView<?> arg0, View view, int position,

                    long arg3) {

                // TODO Auto-generated method stub

                

                

                String id = ((TextView) view.findViewById(R.id.txt_id)).getText().toString();

Toast.makeText(getApplicat​ionContext(), id,Toast.LENGTH_LONG).show();

            }

});[/shcode]

بعد این خط بذارید

[shcode=java]  lst.setAdapter(adapter);[/shcode]

باسلام . ممنون به خاطر جواب .ولی کد رو که اضافه کردم ارور میده چون تو sql تازه کار هستم نتونستم حلش کنم اگه امکان داره سورس کد این برنامه رو برام بزارید که با کلیک روی آیتمهای لیست ویو به اکتیویتی دلخواه برم

public class MainActivity extends Activity {

   

     Database myDbHelper;

        SQLiteDatabase db;

        ListAdapter adapter;

        ArrayList> data;

        @Override

        protected void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);

            setContentView(R.layout.activity_main);

            ListView lst=(ListView) findViewById(R.id.listView1);

            Load_Database();

            db = myDbHelper.getReadableDatabase();

            Cursor    c = db.rawQuery("select * from tbl1", null);

                data = new ArrayList>();

     

                for (; c.moveToNext() ; ) {

                    HashMap map = new HashMap();

                    String id = c.getString(c.getColumnIndex("Id"));

                    String name = c.getString(c.getColumnIndex("Name"));

                    map.put("id", id);

                    map.put("name", name);

                    data.add(map);

                }

                adapter = new List_view(this, data);

     

                lst.setAdapter(adapter);

                lst.setOnItemClickListener(new OnItemClickListener() {

                     

                    @Override

                    public void onItemClick(AdapterView<?> arg0, View view, int position,

                            long arg3) {

                        // TODO Auto-generated method stub

                         

                         

                        String id = ((TextView) view.findViewById(R.id.txt_id)).getText().toString();

        Toast.makeText(getApplicat​​ionContext(), id,Toast.LENGTH_LONG).show();

                    }

        });

                

        }

        private void Load_Database() throws Error {

            myDbHelper = new Database(MainActivity.this);

            try {

     

                myDbHelper.createDataBase();

     

            } catch (IOException ioe) {

     

                throw new Error("Unable to create database");

     

            }

     

            try {

     

                myDbHelper.openDataBase();

            } catch (SQLException sqle) {

                throw sqle;

     

            }

        }

    }

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام دوست عزیز

اینم کد کاملش با کلید روی هر آیتم

[shcode=java]package com.p30droid.externaldatabase;

import java.io.IOException;

import java.util.ArrayList;

import java.util.HashMap;

import android.app.Activity;

import android.database.Cursor;

import android.database.SQLException;

import android.database.sqlite.SQLiteDatabase;

import android.os.Bundle;

import android.view.View;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.ListAdapter;

import android.widget.ListView;

import android.widget.TextView;

import android.widget.Toast;

public class MainActivity extends Activity {

    Database myDbHelper;

    SQLiteDatabase db;

    ListAdapter adapter;

    ArrayList> data;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        ListView lst=(ListView) findViewById(R.id.listView1);

        Load_Database();

        db = myDbHelper.getReadableDatabase();

        Cursor    c = db.rawQuery("select * from tbl1", null);

            data = new ArrayList>();

        for ( ; c.moveToNext( ) ; )  {

                HashMap map = new HashMap();

                String id = c.getString(c.getColumnIndex("Id"));

                String name = c.getString(c.getColumnIndex("Name"));

                map.put("id", id);

                map.put("name", name);

                data.add(map);

            }

            adapter = new list_view(this, data);

            lst.setAdapter(adapter);

            lst.setOnItemClickListener(new OnItemClickListener() {

                @Override

                public void onItemClick(AdapterView<?> arg0, View view, int position,

                        long arg3) {

                    // TODO Auto-generated method stub

                   

                    String id = ((TextView) view.findViewById(R.id.txt_id)).getText().toString();

                    Toast.makeText(getBaseContext(), id, Toast.LENGTH_LONG).show();

        }

            });

           

    }

    private void Load_Database() throws Error {

        myDbHelper = new Database(MainActivity.this);

        try {

            myDbHelper.createDataBase();

        } catch (IOException ioe) {

            throw new Error("Unable to create database");

        }

        try {

            myDbHelper.openDataBase();

        } catch (SQLException sqle) {

            throw sqle;

        }

    }

}

[/shcode]

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

با سلام خدمت شما.

ممنون به خاطر راهنمایی شما . بالاخره موفق شدم.

اما یه مشکل دیگه دارم که امیدوارم با کمک شما حل بشه.

من یه دیتابیس دارم شامل آیدی و عنوان و متن .

در لیست ویو عنوان میاد و روی هر کدوم کلیک کنم به عنوان مثال به صفحه متن میرم میخوام در اکتیویتی متن دو تکست ویو بزارم که یکی از دیتابیس عنوان و دیگری متن رو بگیره اگر امکان داره در حد آماتور آموزش بدید.

با تشکر ویژه از شما استاد محترم.

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام

شما میتونین وقتی از دیتابیس فیلدها رو میخونین مثلا

[shcode=java]String title = c.getString(c.getColumnIndex("Title"));

                String text = c.getString(c.getColumnIndex("Text"));[/shcode]

توی هر تکست ویو یکی رو بذارین مثل

[shcode=java]txt.setText(title);

txt2.setText(text);[/shcode]

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام

شما میتونین وقتی از دیتابیس فیلدها رو میخونین مثلا

[shcode=java]String title = c.getString(c.getColumnIndex("Title"));

                String text = c.getString(c.getColumnIndex("Text"));[/shcode]

توی هر تکست ویو یکی رو بذارین مثل

[shcode=java]txt.setText(title);

txt2.setText(text);[/shcode]

با سلام خدمت شما.

متاسفانه خیلی تلاش کردم توی اینترنت زیاد مطالعه کردم اما موفق نشدم اگه امکان داره بیشتر توضیح بدید یا یه نمونه کد بزارید که مشکلم حل بشه

با تشکر از همه شما

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام من کدهارو باتوجه به آموزش شما نوشتم ولی تو مسیر دیتابیس

[align=left]DB_PATH = "/data/data/" + context.getPackageName() + "/" + "databases[/align]

این وارنینگ رومیده

[align=left]do not hardcode "/data/" ;[/align]

[align=left]use Context.getFilesDir.().getpath instead() [/align]

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

به وارنینگ اهمیت نده این کار رو هم نکنی باز دیتابیس کپی میشه!

اون وارنینگ بخاطر اینه که مگه هر گوشی مثل سامسونگ و.. ممکنه که مسیر پوشه فرق بکنه و بجای هاردکد از چیزی که گفته استفاده بکن ولی ان کار هم نکنی باز جواب میده برای اند 4.4 به پایین من تست کردم(گوشی سامسونگ)

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

نمی دونم چرا دیتابیس که میسازم برنامم مشکل پیدا میکنه و اجرا نمیشه، حتی ساده ترین دیتابیس یه جدول با 3ه داده

کدی که شما قرار دادین رو اجرا کردم مشکلی نداشت. دیتابیسی که تو آموزشتون قرار دادین رو خودم درست میکنم  و تو برنامه می زارم اجرا نمیشه ولی دیتابیس شما رو تو برنامه رو میخونه و درست اجرا میشه ! مشکل از خروجی گرفتن از دیتابیسیه که خودم میسازم البته هرجور که خروجی میگیرم(export میگیرم یا از دیتابیسم backup  میگیرم و اونو کپی میکنم تو برنامه) بازم برنامم اجرا نمیشه

میشه راهنماییم کنیین چه جوری خروجی بگیرم از دیتابیسم

ممکن برنامه sqlite expert pro... ; که نصب کردم مشکل داشته باشه؟!

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

به وارنینگ اهمیت نده این کار رو هم نکنی باز دیتابیس کپی میشه!

اون وارنینگ بخاطر اینه که مگه هر گوشی مثل سامسونگ و.. ممکنه که مسیر پوشه فرق بکنه و بجای هاردکد از چیزی که گفته استفاده بکن ولی ان کار هم نکنی باز جواب میده برای اند 4.4 به پایین من تست کردم(گوشی سامسونگ)

یه سوال دیگه ،اگه فایل دیتابیسی که ساختیم با پسوند db باشه به این روشی که تو آموزش گفته باز نمیشه درسته

چون من امتحان کردم نشد!

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط razzagh2826
      بببخشید شما یه اموزش تو انجمن گذاشته بودید برای دیتا بیس این قسمت اخرش رو ننوشته بودن میتونید یه راهنمایی کنید
      تو عکس زیر ببینید
       


    • توسط mohammadreza2012
      سلام دوستان .
      من میخوام یه برنامه خبری بنویسم .
      مثلا پست بذارم که شامل عکس و اینچیزا باشه .
      و میخوام دیتابیس رو سرور باشه و از طریق گوشی بهش دسترسی داشته باشم .
      لطفا کمک کنید که چجوری میشه ساختش .
      این اموزشای توی اینترنت هم که نفهمیدم چی شد .
      خواهش میکنم کمک کنید
       
    • توسط Majid Ebrahimi
      برای اینکار دو روش وجود دارد:
      1- اینکه عکس را در دیتابیس ذخیره وسپس در برنامه نمایش دهیم.
      2-اینکه نام عکس را در دیتابیس ذخیره و خود تصاویر را در پوشه ریسورس برنامه مثلا در drawable ذخیره و سپس با توجه به نام آن تصویر را در ایمیج ویو لود کنیم.
      ما روش دوم را در این اموزش بررسی خواهیم کرد.
      به کد زیر توجه کنید: ImageView img; Database myDbHelper; SQLiteDatabase db; img = (ImageView) findViewById(R.id.imageView1); db = myDbHelper.getWritableDatabase(); String s = getIntent().getStringExtra("id"); Cursor c = db.rawQuery("select * from student where stu_id = " + id, null); if (c.moveToNext()) { img_name = c.getString(c.getColumnIndex("img")); Log.d("img", img_name); String uri = "drawable/" + img_name; // int imageResource = R.drawable.icon; int imageResource = getResources().getIdentifier(uri, null, getPackageName()); Drawable image = getResources().getDrawable(imageResource); img.setImageDrawable(image); } همانطور که مشخص است بعد از زدن یک کوئری در دیتابیس نام تصویر مربوط به دانشجوی مورد نظر را گرفته و سپس id ایمیج مورد نظر را در ریسورس های برنامه به دست آورده و آن را در ایمیج ویو نشان می دهد.
      امیدوارم این آموزش مقبول افتد.
    • توسط Farzad Sarseifi
      در این تاپیک بنا به درخواستی از کاربران محترم انجمن پی سی دروید که خواستار ، قرار دادن لینک دانلود برنامه SqliteAdmin میباشد،را قرار میدهیم.

       
      sqliteadmin.zip
      sqliteadmin.zip
       
       
    • توسط Farzad Sarseifi
      یکی از کارهایی که برای مدیریت دیتابیس برای برنامه نویسان اندروید الزام میباشد تبدیل دیتابیس ها به دیگر دیتابیس های دیگر میباشد مثلا mysql به sqlite و ....
      برای تبدیل دیتابیس های دیگر به sqlite که نیاز برنامه نویسان میباشد ابزاری را معرفی میکنیم که توانایی این را دارد که دیتابیس های mysql، Oracle،Postgresql را به Sqlite تبدیل کند.
      برای دریافت این نرم افزار به آدرس زیر مراجعه نمایید:
      http://www.sqlabs.com/sqliteconverter.php    

       
       

       
       
       

  • دوره آموزشی اندروید ایران کانادا آموزش ویدئویی اندروید آموزش برنامه نویسی اندروید اندروید کاپ دوره آنلاین اندروید کتاب های آموزشی اندروید بسته آموزشی اندروید دوره برنامه نویسی اندروید آموزش Kotlin آموزش برنامه نویسی ios
  • فایل