Farzad Sarseifi

مدیریت انجمن
  • تعداد ارسال ها

    1,722
  • تاریخ عضویت

  • آخرین بازدید

  • Days Won

    85

پست ها ارسال شده توسط Farzad Sarseifi


  1. Display display = getActivity().getWindowManager().getDefaultDisplay();
    DisplayMetrics outMetrics = new DisplayMetrics();
    display.getMetrics(outMetrics);
    
    float density  = getResources().getDisplayMetrics().density;
    float dpWidth  = outMetrics.widthPixels / density;
    int columns = Math.round(dpWidth/300);
    mLayoutManager = new GridLayoutManager(getActivity(),columns);
    mRecyclerView.setLayoutManager(mLayoutManager);

     


  2. در 7 دقیقه قبل، saeed1366412 گفته است :

    سلام من وقتی برنامه رو دیباگ میکنم ابتدای برنامه force close میده و میره داخل برنامه 

    logcat

    
    04-26 06:47:35.126 26637-26637/com.saeedahmad.ir.saeed W/ActivityThread: Application com.saeedahmad.ir.saeed is waiting for the debugger on port 8100...
    04-26 06:47:37.742 26637-26637/com.saeedahmad.ir.saeed W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
    04-26 06:47:38.439 26637-26708/com.saeedahmad.ir.saeed W/EGL_emulation: eglSurfaceAttrib not implemented
    04-26 06:47:38.439 26637-26708/com.saeedahmad.ir.saeed W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xeec60680, error=EGL_SUCCESS
    04-26 06:47:38.593 26637-26637/com.saeedahmad.ir.saeed W/art: Before Android 4.1, method int android.support.v7.widget.ListViewCompat.lookForSelectablePosition(int, boolean) would have incorrectly overridden the package-private method in android.widget.ListView

    علتش چیه

     

    آیا پکیج اپ رو تغییر دادید اینجوری شده ؟؟


  3. در 51 دقیقه قبل، flash118 گفته است :

    با سلام و وقت بخیر در آندروید 6 به بالا پرمیشن ها حین نصب خواسته نمیشه و در حین اجرای برنامه درخواست میشه و باید کاربر تایید یا رد کنه حالا من میخواستم 6 تا پرمیشن رو در اول اجرای برنامه بخواهم و دفعه بعد دیگه لازم نباشه و در دفعات بعد فقط بررسی کنم ببینم مجوز داده شده محفوظ هست یا نه

    مجوز های لازم برای من :

    ACCESS_NETWORK_STATE
    ACCESS_WIFI_STATE
    READ_PHONE_STATE
    INTERNET
    WRITE_EXTERNAL_STOREG
    ACCESS_FINE_LOCATION

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

    بعدم یه سئوال برای کار با دیتابیس مجوز (WRITE_EXTERNAL_STOREG) کافی هست؟

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

    متشکر

    اینکار امکان پذیر نیستش ،فقط میتونید اینکارو کنید که مجوز ها به صورت گروهی داده شود

     

    activity_main.xml
    <?xml version="1.0" encoding="utf-8"?>
    <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        tools:context="info.androidhive.mpermissions.MainActivity">
     
        <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/AppTheme.AppBarOverlay">
     
            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="?attr/colorPrimary"
                app:popupTheme="@style/AppTheme.PopupOverlay" />
     
        </android.support.design.widget.AppBarLayout>
     
        <RelativeLayout
            android:id="@+id/content_main"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:paddingBottom="@dimen/activity_vertical_margin"
            android:paddingLeft="@dimen/activity_horizontal_margin"
            android:paddingRight="@dimen/activity_horizontal_margin"
            android:paddingTop="@dimen/activity_vertical_margin"
            app:layout_behavior="@string/appbar_scrolling_view_behavior"
            tools:context="info.androidhive.mpermissions.MainActivity"
            tools:showIn="@layout/activity_main">
     
            <Button
                android:id="@+id/btnLaunchMultiplePermission"
                android:layout_below="@+id/imageView"
                android:layout_marginTop="20dp"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Request Multiple Permissions"/>
     
            <Button
                android:id="@+id/btnLaunchPermissionFragment"
                android:layout_below="@+id/btnLaunchMultiplePermission"
                android:layout_marginTop="10dp"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Request Permission on Fragment"/>
     
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="@string/single_permission_text"
                android:textAlignment="center"
                android:layout_alignParentBottom="true"
                android:layout_alignParentStart="true"
                android:layout_marginBottom="123dp" />
     
        </RelativeLayout>
     
        <android.support.design.widget.FloatingActionButton
            android:id="@+id/fab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|end"
            android:layout_margin="@dimen/fab_margin"
            app:srcCompat="@drawable/ic_file_download_black_24dp" />
     
    </android.support.design.widget.CoordinatorLayout>

    android-m-requesting-multiple-permissions-1.png.f546b29c5515c017631bac51437b0235.png

    Manifest :

    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

     

    import android.Manifest;
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.content.pm.PackageManager;
    import android.net.Uri;
    import android.provider.Settings;
    import android.support.annotation.NonNull;
    import android.support.v4.app.ActivityCompat;
    import android.support.v7.app.AlertDialog;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.support.v7.widget.Toolbar;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    import android.widget.Toast;
     
    public class MultiplePermissionsActivity extends AppCompatActivity {
     
        private static final int PERMISSION_CALLBACK_CONSTANT = 100;
        private static final int REQUEST_PERMISSION_SETTING = 101;
        String[] permissionsRequired = new String[]{Manifest.permission.CAMERA,
                Manifest.permission.ACCESS_FINE_LOCATION,
                Manifest.permission.ACCESS_COARSE_LOCATION};
        private TextView txtPermissions;
        private Button btnCheckPermissions;
        private SharedPreferences permissionStatus;
        private boolean sentToSettings = false;
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_multiple_permissions);
            Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
            setSupportActionBar(toolbar);
     
            permissionStatus = getSharedPreferences("permissionStatus",MODE_PRIVATE);
     
            txtPermissions = (TextView) findViewById(R.id.txtPermissions);
            btnCheckPermissions = (Button) findViewById(R.id.btnCheckPermissions);
     
            btnCheckPermissions.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if(ActivityCompat.checkSelfPermission(MultiplePermissionsActivity.this, permissionsRequired[0]) != PackageManager.PERMISSION_GRANTED
                            || ActivityCompat.checkSelfPermission(MultiplePermissionsActivity.this, permissionsRequired[1]) != PackageManager.PERMISSION_GRANTED
                            || ActivityCompat.checkSelfPermission(MultiplePermissionsActivity.this, permissionsRequired[2]) != PackageManager.PERMISSION_GRANTED){
                        if(ActivityCompat.shouldShowRequestPermissionRationale(MultiplePermissionsActivity.this,permissionsRequired[0])
                                || ActivityCompat.shouldShowRequestPermissionRationale(MultiplePermissionsActivity.this,permissionsRequired[1])
                                || ActivityCompat.shouldShowRequestPermissionRationale(MultiplePermissionsActivity.this,permissionsRequired[2])){
                            //Show Information about why you need the permission
                            AlertDialog.Builder builder = new AlertDialog.Builder(MultiplePermissionsActivity.this);
                            builder.setTitle("Need Multiple Permissions");
                            builder.setMessage("This app needs Camera and Location permissions.");
                            builder.setPositiveButton("Grant", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    dialog.cancel();
                                    ActivityCompat.requestPermissions(MultiplePermissionsActivity.this,permissionsRequired,PERMISSION_CALLBACK_CONSTANT);
                                }
                            });
                            builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    dialog.cancel();
                                }
                            });
                            builder.show();
                        } else if (permissionStatus.getBoolean(permissionsRequired[0],false)) {
                            //Previously Permission Request was cancelled with 'Dont Ask Again',
                            // Redirect to Settings after showing Information about why you need the permission
                            AlertDialog.Builder builder = new AlertDialog.Builder(MultiplePermissionsActivity.this);
                            builder.setTitle("Need Multiple Permissions");
                            builder.setMessage("This app needs Camera and Location permissions.");
                            builder.setPositiveButton("Grant", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    dialog.cancel();
                                    sentToSettings = true;
                                    Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
                                    Uri uri = Uri.fromParts("package", getPackageName(), null);
                                    intent.setData(uri);
                                    startActivityForResult(intent, REQUEST_PERMISSION_SETTING);
                                    Toast.makeText(getBaseContext(), "Go to Permissions to Grant  Camera and Location", Toast.LENGTH_LONG).show();
                                }
                            });
                            builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    dialog.cancel();
                                }
                            });
                            builder.show();
                        }  else {
                            //just request the permission
                            ActivityCompat.requestPermissions(MultiplePermissionsActivity.this,permissionsRequired,PERMISSION_CALLBACK_CONSTANT);
                        }
     
                        txtPermissions.setText("Permissions Required");
     
                        SharedPreferences.Editor editor = permissionStatus.edit();
                        editor.putBoolean(permissionsRequired[0],true);
                        editor.commit();
                    } else {
                        //You already have the permission, just go ahead.
                        proceedAfterPermission();
                    }
                }
            });
        }
     
        @Override
        public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
            super.onRequestPermissionsResult(requestCode, permissions, grantResults);
            if(requestCode == PERMISSION_CALLBACK_CONSTANT){
                //check if all permissions are granted
                boolean allgranted = false;
                for(int i=0;i<grantResults.length;i++){
                    if(grantResults[i]==PackageManager.PERMISSION_GRANTED){
                        allgranted = true;
                    } else {
                        allgranted = false;
                        break;
                    }
                }
     
                if(allgranted){
                    proceedAfterPermission();
                } else if(ActivityCompat.shouldShowRequestPermissionRationale(MultiplePermissionsActivity.this,permissionsRequired[0])
                        || ActivityCompat.shouldShowRequestPermissionRationale(MultiplePermissionsActivity.this,permissionsRequired[1])
                        || ActivityCompat.shouldShowRequestPermissionRationale(MultiplePermissionsActivity.this,permissionsRequired[2])){
                    txtPermissions.setText("Permissions Required");
                    AlertDialog.Builder builder = new AlertDialog.Builder(MultiplePermissionsActivity.this);
                    builder.setTitle("Need Multiple Permissions");
                    builder.setMessage("This app needs Camera and Location permissions.");
                    builder.setPositiveButton("Grant", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.cancel();
                            ActivityCompat.requestPermissions(MultiplePermissionsActivity.this,permissionsRequired,PERMISSION_CALLBACK_CONSTANT);
                        }
                    });
                    builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dialog.cancel();
                        }
                    });
                    builder.show();
                } else {
                    Toast.makeText(getBaseContext(),"Unable to get Permission",Toast.LENGTH_LONG).show();
                }
            }
        }
     
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            if (requestCode == REQUEST_PERMISSION_SETTING) {
                if (ActivityCompat.checkSelfPermission(MultiplePermissionsActivity.this, permissionsRequired[0]) == PackageManager.PERMISSION_GRANTED) {
                    //Got Permission
                    proceedAfterPermission();
                }
            }
        }
     
        private void proceedAfterPermission() {
            txtPermissions.setText("We've got all permissions");
            Toast.makeText(getBaseContext(), "We got All Permissions", Toast.LENGTH_LONG).show();
        }
     
        @Override
        protected void onPostResume() {
            super.onPostResume();
            if (sentToSettings) {
                if (ActivityCompat.checkSelfPermission(MultiplePermissionsActivity.this, permissionsRequired[0]) == PackageManager.PERMISSION_GRANTED) {
                    //Got Permission
                    proceedAfterPermission();
                }
            }
        }
    }

     

    Download Sample 

    M Permissions.zip

    android-marshmallow-permissions-model.png

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

  4. در 56 دقیقه قبل، soroush_habibi گفته است :

    سلام چرا من وقتی یه بار با استفاده از کتابخانه piccaso دریافت می کنم و عکس رو تو سرور عوض می کنم و دوباره با کتابخانه picasso عکس رو دریافت می کنم عکس عوض نمیشه و حتما باید برنامه رو حذف و نصب کنم؟

    این برای کش پیکاسو میباشد که خودش بعد از مدتی حذف میشود، مطمین هستید که همون عکس هستش که با همون سایز و پسوند؟


  5. در ۱ ساعت قبل، Javad Mahmoodi گفته است :

    درضمن برای بار اول به درستی کار میکند ولی اگر دکمه back رو بزنیم و برگردیم به main دوباره بخوایم روی یک ایتم لیست ویو کلیک کنیم ارور میده ، لطفا راهنمایی بفرمایید

    با تشکر

    آیا روی همون آیتم کلیک میکنید که قبلا وارد صفحه شده بودید ؟


  6. در 2 ساعت قبل، mostafa5709 گفته است :

    همون موردی که قبل گفتید درست بود . کاری که من کرده بودم در صفحه splash آرایه ای لیست تعریف کرده بودم که بره ریسایکر ویو  ازاین بخونه زمانیکه با اول اجرا میشه صفحه اسپلش هماجرا میشه و  صفحه ای بعد که این مقدار  آرایه لیست رو میگیره . ولی هنگامی که دکمه recent app رو میزنم از صفحه اسپلش دیگه نمی خونه . منظورم اینطوریه 

    
    public static ArrayList<String> name_cat_parent=new ArrayList<String>();
    public static ArrayList<String> id_cat_parent=new ArrayList<String>();

    همچنین برای فونت هم در صفحه ای اسپلش این کار رو کردم 

    
     public static Typeface font;

    حالا برای اینکه فقط یکبار فونت رو تعریف کنم و مشکل قبلی رو نداشته باشم چی کار باید بکنم ؟ تنها راهش اینه که تو همه اکتیوتی ها تعریف کنم؟

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


  7. در در 1396/02/03, 13:18:39، amir.v13 گفته است :

    با سلام من یه گوشی هوای P8 دارم از اندروید 5 ارتقاش دادم به اندروید 6 اپدیتش OTA حدود 130 مگابایت بود اپدیت که شد شروع کرد به ریستارت شدن پشت سر هم حتی خاموشم نمیشه مگر اینکه شارژش تموم شه دکمه پاور + ولوم میگیرم هیچی نمیاد دیشب رام کاملشو دانلود کردم ریختم مموری بازم تغییری نکرد روتم هست بردم تعمیرات گفت 80 تومن میگیرم :(

    من همین مدل رو داشتم و ارتقاش دادیم به 6 ولی این مشکل رو نداشت.نمانیدگی هواوی برید با 40 تومن اینکارو رو میکنند براتون


  8. در ۱ ساعت قبل، mostafa5709 گفته است :

    کاری که من کردم این بود که برای lifecycle  های دیگه پیغام toast گذاشتم زمانی که از برنام خارج می شدم و برنامه ای دیگه ای رو اجرا می کردم و تا زمانی که پیغام toast  اجرا میشد مشکلی نداشت در موقع برگشت ولی زمانیکه بدون اجرا پیغام toast میرفتم به برنامه به مشکل بر میخودم. من حالا نمی دونم که کدوم بخش از چرخه حیات رو تغییر بدم و این تغییر دادن چه چیزی رو قرار بدم؟

    ممنون از راهنماهاییتان

    احتمال میدم مشکل برای این باشه که Context رو null میده و میره تو ارور.دیباگ کنید و لاگ ارور رو ببیند


  9. در 4 ساعت قبل، Javad Mahmoodi گفته است :

    باسلام

    من 2صفحه اکتیویتی دارم که هرکدوم شامل یک لیست ویو سفارشی هستند

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

    نمیدونم ایراد از کجاست.

    لطفا راهنمایی فرمایید.

    باتشکر

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

    آیا اطمینان دارید کدتون به ارور نمیخوره؟


  10. در 4 ساعت قبل، enyac گفته است :

    دوست عزیز اصلا خطایی نمیده

    وقتی روی ایکون برنامه کلیک میکنم یه لحظه موس به حالت اجرا کردن برنامه در میاد دیگه اتفاقی نمیوفته

    چند بار نصب کردم بازم درست نشد

    جاوا رو نمیشناسه که نمی تونه اجرا کنه. حتما نسخه JDK جاوا رو نصب کنید و مسیردهی در  system . enviroment  رو انجام دهید


  11. در در 1396/02/03, 09:34:36، enyac گفته است :

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

     

    من نرم افزار اندروید استدیو رو رو سیستمم که ویندوز 10 32 بیت هست نصب کردم با جی دی کا 9 اما موقع اجرا اجرا نمیشه  هیچ پیامی هم نمیده

    از قسمت path مسیر jdk رو هم اضافه کردم بازم نشد

     

    تصویر خطا رو بزارید راهنمایی کنیم


  12. در 2 ساعت قبل، md98 گفته است :

    سلام؛

    کتابخونه  compile 'com.folioreader:folioreader:0.2.5' به کتابخونه های دیگم گیر میده

    کسی دلیلشو میدونه

    اینم عکسش

    1.png

     

    شما باید یا خودتون sdk رو به ۲۵ اپدیت کنید و یا اینکه build.gradle فایل رو باز کنید و sdk ورژن رو به ورژن sdk خودتون تغییر بدین

     

     


  13. در 12 ساعت قبل، MR _ RGF گفته است :

     سلام 

    من در حال ساخت ی اپ اندرویدی برای ثبت کسب و کار روی نقشه هستم 

    میخواستم بدونم برای ذخیره داده چه هاستی مناسب این کاره  اگه میشه راهنمایی کنین ممنون :heart:

     

    سلام وقت بخیر

     

    تفاوتی خاصی نداره ولی اگر هاست ایران باشه سریعتر لود میشود

    حجم ترافیک و هاست هم به تعداد یوزر هاتون بستگی داره که چقدر هستش.