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

سلام 

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

   String aks = MainActivity.fruits.get(position).getAks();
   int id = MainActivity.context.getResources().getIdentifier(aks,"drawable",MainActivity.context.getPackageName());
   holder.aks.setImageResource(id);

اینم کد اون قسمت از برنامم

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

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 3 دقیقه قبل، محمد جواد رجبی گفته است :

سلام 

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


   String aks = MainActivity.fruits.get(position).getAks();
   int id = MainActivity.context.getResources().getIdentifier(aks,"drawable",MainActivity.context.getPackageName());
   holder.aks.setImageResource(id);

اینم کد اون قسمت از برنامم

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

منظورتون از تعداد زیاد چند تا میباشد؟

لطفا لاگ ارور رو بزارید

 

 

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 1 دقیقه قبل، Farzad Sarseifi گفته است :

منظورتون از تعداد زیاد چند تا میباشد؟

لطفا لاگ ارور رو بزارید

 

 

تعداد زیاد مثلا 20 تا 30 تا

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در هم اکنون، محمد جواد رجبی گفته است :

تعداد زیاد مثلا 20 تا 30 تا

مشکل از تعداد نیست

لاگ ارور رو بزارید

 

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


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

منظور تون از لاگ کجا میشه

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


at com.example.user.khavaskadeh.Adap.Adapterrecy6.onBindViewHolder(Adapterrecy6.java:63)
at com.example.user.khavaskadeh.Adap.Adapterrecy6.onBindViewHolder(Adapterrecy6.java:24)

 

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


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

از این دو خط ایراد میگیره

یکی

String aks = MainActivity.Spices.get(position).getAks();
int id = MainActivity.context.getResources().getIdentifier(aks,"drawable",MainActivity.context.getPackageName());
holder.aks.setImageResource(id);

دومی

public class Adapterrecy7 extends RecyclerView.Adapter<Adapterrecy7.ViewHolder> {

 

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 2 دقیقه قبل، محمد جواد رجبی گفته است :

منظور تون از لاگ کجا میشه

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



at com.example.user.khavaskadeh.Adap.Adapterrecy6.onBindViewHolder(Adapterrecy6.java:63)
at com.example.user.khavaskadeh.Adap.Adapterrecy6.onBindViewHolder(Adapterrecy6.java:24)

 

از  لاگ ارورتون که داخل  android monitor  نمایش داده میشود عکس بگیرید و کلشو بزارید.تا بتونیم خطا رو پیدا کنیم

 

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


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

این کل کد های Adapterrecy

package com.example.user.khavaskadeh.Adap;

import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.user.khavaskadeh.DataActivity;
import com.example.user.khavaskadeh.MainActivity;
import com.example.user.khavaskadeh.R;
import com.example.user.khavaskadeh.Structure;

import java.util.ArrayList;

/**
 * Created by user on 12/01/2017.
 */

public class Adapterrecy7 extends RecyclerView.Adapter<Adapterrecy7.ViewHolder> {


    private Context context;
    private LayoutInflater layoutInflater;
    //private List<Info> data;

    public static ArrayList<Structure> arrayList = new ArrayList<Structure>();

    public Adapterrecy7(Context context) {
        this.context = context;
        //this.data = data;
        layoutInflater = LayoutInflater.from(context);
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = layoutInflater.inflate(R.layout.simple_recy3,parent,false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {


        holder.name.setText(MainActivity.Spices.get(position).getName());
        //holder.more.setText(MainActivity.fruits.get(position).getMore());
        //holder.aks.setText(MainActivity.fruits.get(position).getAks());









        String aks = MainActivity.Spices.get(position).getAks();
        int id = MainActivity.context.getResources().getIdentifier(aks,"drawable",MainActivity.context.getPackageName());
        holder.aks.setImageResource(id);


        holder.frameLayout.setOnClickListener(clickListener);
        holder.frameLayout.setId(position);







    }


    View.OnClickListener clickListener = new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            int position = view.getId();
            Intent intent = new Intent(MainActivity.context,DataActivity.class);
            intent.putExtra("name" , "Spices");
            intent.putExtra("id",position + "");
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            MainActivity.context.startActivity(intent);

        }
    };

    @Override
    public int getItemCount() {
        return MainActivity.Spices.size();
        //return data.size();
        //return 0;
    }



    public class ViewHolder extends RecyclerView.ViewHolder {
        public TextView name;
        public ImageView aks;
        public TextView more;
        FrameLayout frameLayout;


        public ViewHolder(View itemView) {
            super(itemView);
            aks = (ImageView) itemView.findViewById(R.id.aks3);
            name = (TextView) itemView.findViewById(R.id.txtname3);
            more = (TextView) itemView.findViewById(R.id.txtname3);
            frameLayout = (FrameLayout) itemView.findViewById(R.id.kol);
        }
    }





}

 

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 1 دقیقه قبل، محمد جواد رجبی گفته است :

این کل کد های Adapterrecy


package com.example.user.khavaskadeh.Adap;

import android.content.Context;
import android.content.Intent;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.user.khavaskadeh.DataActivity;
import com.example.user.khavaskadeh.MainActivity;
import com.example.user.khavaskadeh.R;
import com.example.user.khavaskadeh.Structure;

import java.util.ArrayList;

/**
 * Created by user on 12/01/2017.
 */

public class Adapterrecy7 extends RecyclerView.Adapter<Adapterrecy7.ViewHolder> {


    private Context context;
    private LayoutInflater layoutInflater;
    //private List<Info> data;

    public static ArrayList<Structure> arrayList = new ArrayList<Structure>();

    public Adapterrecy7(Context context) {
        this.context = context;
        //this.data = data;
        layoutInflater = LayoutInflater.from(context);
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = layoutInflater.inflate(R.layout.simple_recy3,parent,false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {


        holder.name.setText(MainActivity.Spices.get(position).getName());
        //holder.more.setText(MainActivity.fruits.get(position).getMore());
        //holder.aks.setText(MainActivity.fruits.get(position).getAks());









        String aks = MainActivity.Spices.get(position).getAks();
        int id = MainActivity.context.getResources().getIdentifier(aks,"drawable",MainActivity.context.getPackageName());
        holder.aks.setImageResource(id);


        holder.frameLayout.setOnClickListener(clickListener);
        holder.frameLayout.setId(position);







    }


    View.OnClickListener clickListener = new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            int position = view.getId();
            Intent intent = new Intent(MainActivity.context,DataActivity.class);
            intent.putExtra("name" , "Spices");
            intent.putExtra("id",position + "");
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            MainActivity.context.startActivity(intent);

        }
    };

    @Override
    public int getItemCount() {
        return MainActivity.Spices.size();
        //return data.size();
        //return 0;
    }



    public class ViewHolder extends RecyclerView.ViewHolder {
        public TextView name;
        public ImageView aks;
        public TextView more;
        FrameLayout frameLayout;


        public ViewHolder(View itemView) {
            super(itemView);
            aks = (ImageView) itemView.findViewById(R.id.aks3);
            name = (TextView) itemView.findViewById(R.id.txtname3);
            more = (TextView) itemView.findViewById(R.id.txtname3);
            frameLayout = (FrameLayout) itemView.findViewById(R.id.kol);
        }
    }





}

 

 

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

 

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 3 دقیقه قبل، محمد جواد رجبی گفته است :

اینم یه عکس دیگه

 

 

2017-03-01 (2).png

 

ارور  out of memory  رو نشون میده 

حجم هر کدام از عکس ها چقدر میباشد ؟

 

 

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


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

ارسال شده در (ویرایش شده)

در ضمن 7 تا تب دارم که هر کدوم رو که عکس بیشتری دارم عکس نشون دادنشون رو غیر فعال می کنم برنامه بهتر میشه

ویرایش شده در توسط محمد جواد رجبی

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 1 دقیقه قبل، محمد جواد رجبی گفته است :

در ضمن 7 تا تب دارم که هر کدوم رو که عکس بیشتری دارم عکس نشون دادنشون رو غیر فعال می کنم برنامه بهتر میشه

مشکل از مموری هستش.کد زیر رو بزاریید و ببیند چقدر رم داره استفاده میکنه

Runtime.getRuntime().gc();

 

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در هم اکنون، Farzad Sarseifi گفته است :

مشکل از مموری هستش.کد زیر رو بزاریید و ببیند چقدر رم داره استفاده میکنه


Runtime.getRuntime().gc();

 

کجا بزارم؟

 

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 2 دقیقه قبل، محمد جواد رجبی گفته است :

کجا بزارم؟

 

توی اداپتر بزارید

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در هم اکنون، Farzad Sarseifi گفته است :

توی اداپتر بزارید

چطوری بفهمم چه قدر داره  از رم استفاده می کنه

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 3 ساعت قبل، محمد جواد رجبی گفته است :

چطوری بفهمم چه قدر داره  از رم استفاده می کنه

توی لاگ نشون میده چقدر رم مصرفه میکنه

 

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 12 ساعت قبل، Farzad Sarseifi گفته است :

توی لاگ نشون میده چقدر رم مصرفه میکنه

 

 

2017-03-02 (1).png

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 3 دقیقه قبل، محمد جواد رجبی گفته است :

 

2017-03-02 (1).png

 

اگه دقت کنید میبنید تا ۱۸۴ مگابایت داره رم میکشه برنامه بخاطر همینه وسط کار برنامه ارور میده

 

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 5 دقیقه قبل، محمد جواد رجبی گفته است :

حالا باید چیکار کنم؟

 

مشکل تصاویرتون هستش،باید حجمشون رو کم کنید تا اینقدر رم رو اشغال رو نکنه که سیستم عامل از حافظه بندازدش بیرون

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 7 دقیقه قبل، Farzad Sarseifi گفته است :

مشکل تصاویرتون هستش،باید حجمشون رو کم کنید تا اینقدر رم رو اشغال رو نکنه که سیستم عامل از حافظه بندازدش بیرون

آقا ممنون درست شد مشکل از عکساش بود

 

1 کاربر پسند دیده است

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


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

یه سوال دیگه من این کد را نوشتم برای این که وقتی رو دگمه back کلیک بشه اگه navigaition View باز اون رو ببنده و اگه اون باز بسته بود از برنامه خارج شه ولی وقتی روی اون کلیک می کنم فورس کلوز میده

@Override
    public void onBackPressed() {


        if (drawerLayout.isDrawerOpen(Gravity.RIGHT)) {
            drawerLayout.closeDrawer(Gravity.RIGHT);
        }else {
            new MaterialDialog.Builder(MainActivity.this)
                    .title("خروج")
                    .content("آیا قصد خروج از برنامه را دارید؟")
                    .positiveText("بله")
                    .negativeText("خیر")
                    .onPositive(new MaterialDialog.SingleButtonCallback() {
                        @Override
                        public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
                            finish();


                        }
                    })
                    .show();
        }


    }

مشکلش چیه؟

 

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


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

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

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

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

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


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

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

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


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

  • مطالب مشابه

    • توسط hackn82
      سلام خدمت اساتید گرامی . 

      من یه برنامه نوشتن که برای یادگیری لغاته . وقتی کاربر لغتی رو به بخش علاقه مندی اضافه می کنه لغت نمایش داده نمیشه و باید برنامه رو مجدد اجرا کرد تا لغت انتخاب شده به بخش علاقه مندی اضافه/ حذف بشه . همچنین بعد از هر بار اجرا لیست لغات تکرار میشه ( مثلا بار دوم از هر کدوم 2 سری بار سوم از هرکدوم 3 سری و ... ) ایجاد میشه . ممنون میشم راهنماییم کنید . 
       
      package farmani.com.essentialwordsforielts.mainPage; import android.Manifest; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageManager; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Build; import android.os.Environment; import android.support.annotation.NonNull; import android.support.design.widget.NavigationView; import android.support.design.widget.TabLayout; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v4.view.ViewPager; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Gravity; import android.view.MenuItem; import android.view.View; import android.widget.ImageView; import android.widget.Toast; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; import farmani.com.essentialwordsforielts.R; import farmani.com.essentialwordsforielts.search.ActivitySearch; public class MainActivity extends AppCompatActivity { public static Context context; public static ArrayList<Structure> list = new ArrayList<>(); public static ArrayList<Structure> favorite = new ArrayList<>(); DrawerLayout drawerLayout; NavigationView navigationView; ImageView hamburger; SQLiteDatabase database; String destPath; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.navigation_activity_main); if (Build.VERSION.SDK_INT >= 23) { if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(MainActivity.this , new String[]{Manifest.permission.READ_EXTERNAL_STORAGE , Manifest.permission.WRITE_EXTERNAL_STORAGE} , 1); } else if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(MainActivity.this , new String[]{Manifest.permission.READ_EXTERNAL_STORAGE , Manifest.permission.WRITE_EXTERNAL_STORAGE} , 1); } else { setupDB(); selectList(); selectFavorite(); Toast.makeText(MainActivity.this, "You grandet earlier", Toast.LENGTH_LONG).show(); } } if (!favorite.isEmpty()){ favorite.clear(); selectFavorite(); } else if (!list.isEmpty()){ list.clear(); selectList(); } context = getApplicationContext(); setTabOption(); drawerLayout = findViewById(R.id.navigation_drawer); navigationView = findViewById(R.id.navigation_view); hamburger = findViewById(R.id.hamburger); hamburger.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { drawerLayout.openDrawer(Gravity.START); } }); navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { int id = item.getItemId(); if (id == R.id.exit) { AlertDialog.Builder alertDialog = new AlertDialog.Builder( MainActivity.this); alertDialog.setTitle(R.string.exit); alertDialog.setMessage(R.string.exit_ask); alertDialog.setCancelable(false); alertDialog.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { finish(); } }); alertDialog.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); alertDialog.show(); } if (id == R.id.search) { Intent intent = new Intent(MainActivity.this, ActivitySearch.class); MainActivity.this.startActivity(intent); } return true; } }); } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode) { case 1: { if (grantResults.length >= 2 && grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED) { Toast.makeText(MainActivity.this, "Access granted", Toast.LENGTH_LONG).show(); } } } } @Override public void onBackPressed() { if (drawerLayout.isDrawerOpen(Gravity.START)) { drawerLayout.closeDrawer(Gravity.START); } else { AlertDialog.Builder alertDialog = new AlertDialog.Builder( MainActivity.this); alertDialog.setTitle(R.string.exit); alertDialog.setMessage(R.string.exit_ask); alertDialog.setCancelable(false); alertDialog.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { finish(); } }); alertDialog.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); alertDialog.show(); } } private void setTabOption() { ViewPager viewPager = findViewById(R.id.viewpager); viewPager.setAdapter(new AdapterFragment(getSupportFragmentManager(), context)); TabLayout tabStrip = findViewById(R.id.tabs); tabStrip.setupWithViewPager(viewPager); } private void setupDB() { try { destPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/ielts/"; File file = new File(destPath); if (!file.exists()) { file.mkdirs(); file.createNewFile(); CopyDB(getBaseContext().getAssets().open("md_book.db"), new FileOutputStream(destPath + "/md_book.db")); } } catch (IOException e1) { e1.printStackTrace(); } } @Override protected void onResume() { super.onResume(); if (!favorite.isEmpty()){ favorite.clear(); selectFavorite(); } else if (!list.isEmpty()){ list.clear(); selectList(); } } private void CopyDB(InputStream inputStream, OutputStream outputStream) throws IOException { byte[] buffer = new byte[1024]; int length; while ((length = inputStream.read(buffer)) > 0) { outputStream.write(buffer, 0, length); } inputStream.close(); outputStream.close(); } private void selectFavorite() { database = SQLiteDatabase.openOrCreateDatabase(destPath + "/md_book.db", null); Cursor cursor = database.rawQuery("SELECT * FROM main WHERE fav = 1", null); while (cursor.moveToNext()) { String word = cursor.getString(cursor.getColumnIndex("word")); String definition = cursor.getString(cursor.getColumnIndex("definition")); String trans = cursor.getString(cursor.getColumnIndex("trans")); String img = cursor.getString(cursor.getColumnIndex("img")); int id = cursor.getInt(cursor.getColumnIndex("id")); Structure struct = new Structure(word, definition, trans, img, id); struct.setWord(word); struct.setDefinition(definition); struct.setTrans(trans); struct.setImg(img); struct.setId(id); favorite.add(struct); } } private void selectList() { database = SQLiteDatabase.openOrCreateDatabase(destPath + "/md_book.db", null); Cursor cursor = database.rawQuery("SELECT * FROM main", null); while (cursor.moveToNext()) { String word = cursor.getString(cursor.getColumnIndex("word")); String definition = cursor.getString(cursor.getColumnIndex("definition")); String trans = cursor.getString(cursor.getColumnIndex("trans")); String img = cursor.getString(cursor.getColumnIndex("img")); int id = cursor.getInt(cursor.getColumnIndex("id")); Structure struct = new Structure(word, definition, trans, img, id); struct.setWord(word); struct.setDefinition(definition); struct.setTrans(trans); struct.setImg(img); struct.setId(id); list.add(struct); } } }  
    • توسط hackn82
      سلام به همه اساتید گرامی . 
      من یه برنامه کتاب نوشتم که از دیتابیس خارجی استفاده کردم . و چون از API 26 استفاده کردم باید حتما واسه کپی دیتابیس دسترسی بگیره . الان مشکلم اینجاست که بار اول برنامه به محض اجرا کرش میشه ولی صفحه دسترسی همچنان موجوده و پس از تایید و اجرای برنامه دیگه مشکلی نیست و برنامه به درستی اجرا میشه . کد برنامه رو براتون میفرستم ممنون میشم کمکم کنید . 
       
      package farmani.com.essentialwordsforielts.mainPage; import android.Manifest; import android.content.Context; import android.content.DialogInterface; import android.content.pm.PackageManager; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Build; import android.os.Environment; import android.support.annotation.NonNull; import android.support.design.widget.NavigationView; import android.support.design.widget.TabLayout; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v4.view.ViewPager; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Gravity; import android.view.MenuItem; import android.view.View; import android.widget.ImageView; import android.widget.Toast; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; import farmani.com.essentialwordsforielts.R; public class MainActivity extends AppCompatActivity { public static Context context; DrawerLayout drawerLayout; NavigationView navigationView; ImageView hamburger; SQLiteDatabase database; String destPath; public static ArrayList<Structure> list = new ArrayList<Structure>(); public static ArrayList<Structure> favorite = new ArrayList<Structure>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.navigation_activity_main); if(Build.VERSION.SDK_INT >= 23){ if(ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){ ActivityCompat.requestPermissions(MainActivity.this , new String[]{Manifest.permission.READ_EXTERNAL_STORAGE ,Manifest.permission.WRITE_EXTERNAL_STORAGE} , 1); }else if(ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED){ ActivityCompat.requestPermissions(MainActivity.this , new String[]{Manifest.permission.READ_EXTERNAL_STORAGE ,Manifest.permission.WRITE_EXTERNAL_STORAGE} , 1); }else { Toast.makeText(MainActivity.this,"You grandet earlier",Toast.LENGTH_LONG).show(); } } try { destPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/ielts/"; File file = new File(destPath); if (!file.exists()) { file.mkdirs(); file.createNewFile(); CopyDB(getBaseContext().getAssets().open("md_book.db"), new FileOutputStream(destPath + "/md_book.db")); } } catch (IOException e1) { e1.printStackTrace(); } context = getApplicationContext(); setTabOption(); drawerLayout = findViewById(R.id.navigation_drawer); navigationView = findViewById(R.id.navigation_view); hamburger = findViewById(R.id.hamburger); hamburger.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { drawerLayout.openDrawer(Gravity.START); } }); navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { int id = item.getItemId(); if (id == R.id.exit) { AlertDialog.Builder alertDialog = new AlertDialog.Builder( MainActivity.this); alertDialog.setTitle(R.string.exit); alertDialog.setMessage(R.string.exit_ask); alertDialog.setCancelable(false); alertDialog.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { finish(); } }); alertDialog.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); alertDialog.show(); } return true; } }); selectList(); selectFavorite(); } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { switch (requestCode) { case 1: { if (grantResults.length >= 2 && grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED) { Toast.makeText(MainActivity.this, "Access granted", Toast.LENGTH_LONG).show(); } } } } @Override public void onBackPressed() { if (drawerLayout.isDrawerOpen(Gravity.START)) { drawerLayout.closeDrawer(Gravity.START); } else { AlertDialog.Builder alertDialog = new AlertDialog.Builder( MainActivity.this); alertDialog.setTitle(R.string.exit); alertDialog.setMessage(R.string.exit_ask); alertDialog.setCancelable(false); alertDialog.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { finish(); } }); alertDialog.setNegativeButton(R.string.no, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); alertDialog.show(); } } private void setTabOption() { ViewPager viewPager = findViewById(R.id.viewpager); viewPager.setAdapter(new AdapterFragment(getSupportFragmentManager(), context)); TabLayout tabStrip = findViewById(R.id.tabs); tabStrip.setupWithViewPager(viewPager); } private void CopyDB(InputStream inputStream, OutputStream outputStream) throws IOException { byte[] buffer = new byte[1024]; int length; while ((length = inputStream.read(buffer)) > 0) { outputStream.write(buffer, 0, length); } inputStream.close(); outputStream.close(); } private void selectFavorite(){ database = SQLiteDatabase.openOrCreateDatabase(destPath + "/md_book.db", null); Cursor cursor = database.rawQuery("SELECT * FROM main WHERE fav = 1", null); while (cursor.moveToNext()){ String word = cursor.getString(cursor.getColumnIndex("word")); String definition = cursor.getString(cursor.getColumnIndex("definition")); String trans = cursor.getString(cursor.getColumnIndex("trans")); String img = cursor.getString(cursor.getColumnIndex("img")); int id = cursor.getInt(cursor.getColumnIndex("id")); Structure struct = new Structure(word, definition, trans, img, id); struct.setWord(word); struct.setDefinition(definition); struct.setTrans(trans); struct.setImg(img); struct.setId(id); favorite.add(struct); } } private void selectList(){ database = SQLiteDatabase.openOrCreateDatabase(destPath + "/md_book.db", null); Cursor cursor = database.rawQuery("SELECT * FROM main", null); while (cursor.moveToNext()){ String word = cursor.getString(cursor.getColumnIndex("word")); String definition = cursor.getString(cursor.getColumnIndex("definition")); String trans = cursor.getString(cursor.getColumnIndex("trans")); String img = cursor.getString(cursor.getColumnIndex("img")); int id = cursor.getInt(cursor.getColumnIndex("id")); Structure struct = new Structure(word, definition, trans, img, id); struct.setWord(word); struct.setDefinition(definition); struct.setTrans(trans); struct.setImg(img); struct.setId(id); list.add(struct); } } }  
    • توسط hamidreza.kh
      سلام خسته نباشید چندتا سوال و درخواست داشتم
      دستورات mysql رو کسی دقیقا میتونه بهم بده؟ مثلا سه تا فرگمنت توی یه اکتیوتی دارم ، میخوام یکیش پست هام رو به ترتیب جدیدترین پست ها بگیره از دیتابیس یا حالا سرور ، تب دوم میخوام همون اطلاعات رو بر حسب مثلا تعداد ویو(بیشترین ها) بهم بده و یه فرگمنت دیگه هم میخوام اونایی که مثلا دیده شده رو نمایش بده !  
      برای مثال اول که مشکلی ندارم همه پست هارو میتونم به ترتیب بگیرم اما برای 2 مثال دیگه اللخصوص مثال دوم یکم گیجم ! ممنون میشم راهنمایی کنید
       
      سوال بعدیم هم اینه ، مثلا کافه بازار حالا که من میخوام مثلا 3 تا فرگمنت رو توی یه اکتیویتی بسازم ، و اطلاعات درونش قرار بدم ، باید برای هر فرگمنت یه آداپتر بسازم دیگه؟که دیتا های خاص هرکدوم رو نشون بده !
      اگه این مسئله درست باشه یه اپی مثل اپ کافه بازار تو قسمت برترین ها 3 تا فرگمنت داره توی یک اکتیویتی ، خب؟ بعد این 3 تا یه عالمه آیتم گرفتن ! چرا اپ کرش نمیشه؟ یا اینکه برای کرش شدن اپ این در حد اون قسمت از اپ کافه بازار ، اون دیتا ها خیلی ناچیز اند؟ و کلا اگه مثلا عکس زیاد داشته باشیم برای بهینه سازی اپ توی فرگمنت های یه اکتیویتی چی رو پیشنهاد میکنید؟
      و سوال اخر اینکه از چه نوع ویو پیجری در مثلا همون قسمت برترین های کافه بازار استقاده شده؟!(fragment view pager یا fragment state view pager)؟ و اینکه چه موقه از این و چه موقه از اون استفاده کنیم؟(لطفا با ذکر مثال بفرمایید)
    • توسط razzagh2826
      بببخشید شما یه اموزش تو انجمن گذاشته بودید برای دیتا بیس این قسمت اخرش رو ننوشته بودن میتونید یه راهنمایی کنید
      تو عکس زیر ببینید
       


    • توسط mohammadreza2012
      سلام دوستان .
      من میخوام یه برنامه خبری بنویسم .
      مثلا پست بذارم که شامل عکس و اینچیزا باشه .
      و میخوام دیتابیس رو سرور باشه و از طریق گوشی بهش دسترسی داشته باشم .
      لطفا کمک کنید که چجوری میشه ساختش .
      این اموزشای توی اینترنت هم که نفهمیدم چی شد .
      خواهش میکنم کمک کنید
       

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