جستجو در انجمن

در حال نمایش نتایج برای برچسب های 'جاوا'.



تنظیمات بیشتر جستجو

  • جستجو بر اساس برچسب

    برچسب ها را با , از یکدیگر جدا نمایید.
  • جستجو بر اساس نویسنده

نوع محتوا


برنامه نویسی اندروید | آموزش برنامه نویسی اندروید | آموزش اندروید

  • اندروید
    • ابزار های برنامه نویسی اندروید
    • آموزش برنامه نویسی اندروید
    • رفع مشکلات و سوالات
    • امنیت در اندروید
    • پروژه های اندروید
  • کاتلین (Kotlin)
    • آموزش های برنامه نویسی Kotlin
    • سوالات و رفع مشکلات Kotlin
  • React Native
    • آموزش React Native
    • آموزش Redux
    • رفع مشکلات و سوالات React Native
  • پشتیبانی اندروید
  • مباحث مرتبط با اندروید
    • ابزارها و سایتهای مفید
    • گرافیک موبایل
    • آموزش های ویدئویی
    • برنامه نویسی جاوا
  • تکنولوژی های اندروید
    • وب موبایل
    • توسعه اندروید با #C
    • توسعه اندروید با Basic4Android
  • متفرقه
    • اپلیکیش های ایرانی
    • برنامه نویسی
    • درخواست همکاری
    • مباحث متفرقه
    • مهارتهای فروش و بازاریابی
  • پشتیبانی محصولات مارکت
    • پرسش و پاسخ مرتبط با مارکت انجمن اندروید ایران
    • پشتیبانی مارکت پروژه های اندروید
    • پشتیبانی مارکت آموزش اندروید
    • پشتیبانی مارکت گرافیک موبایل
  • انجمن اندروید ایران
    • اخبار و اعلانات
    • اندروید Lollipop
    • صندوق پيشنهادات و انتقادات
    • اندروید marshmallow
    • تازه‌های دنیای کامپیوتر و فناوری
    • اندروید nougat
    • قوانین انجمن تخصصی اندروید ایران
    • اندروید Oreo

دسته ها

  • پروژه اندروید
    • سورس پروژه اندروید
    • کامپوننت های اندروید
    • کتابخانه های اندروید
  • آموزش اندروید
    • فیلم آموزشی کاربردی
    • مقالات آموزشی اندروید
  • گرافیک موبایل
    • قالب طراحی اپلیکیشن
  • اپلیکیشن های اندروید
    • کاربردی
    • کسب و کار
    • آموزش
    • کتاب‌ها و منابع
    • ویدئو و رسانه
    • بازی‌

تقویم ها

  • Community Calendar

18 نتیجه پیدا شد

  1. با سلام و خسته نباشید من میخام آدرس وب ویو از سمت هاست در یک فایل تکست یا جیسون دریافت کنم از این تکه کد چگونه استفاده کنم ؟ public class readtextfile extends AsyncTask<String, String, String> { ProgressDialog progressDialog; @Override protected String doInBackground(String... params) { StringBuilder response = new StringBuilder(); try { URL url = new URL( "http://example.com/example.txt"); BufferedReader in = new BufferedReader(new InputStreamReader( url.openStream())); String line = null; while ((line = in.readLine()) != null) { // get lines response.append(line); } in.close(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return response.toString(); } protected void onProgressUpdate() { // called when the background task makes any progress } protected void onPreExecute() { progressDialog = new ProgressDialog(MainActivity.this); progressDialog.show(); } @Override protected void onPostExecute(String result) { // TODO Auto-generated method stub super.onPostExecute(result); progressDialog.dismiss(); Log.d("tag", "Response is " + result.toString()); //set webview?? //how to set webview?(result.toString()); }} و اگه کد درستی دارید ارائه بدید و ساده باشه ممنون
  2. درود دوستان - کد جاوا تاریخ شمسی رو برای اندروید استودیو میخواستم . به صورتی که تاریخ روز بالا برام زده بشه و سمت راست فلش دیروز و سمت چپ فردا بخوره و به دیروز و فردا لینک بشه . لطفا کمکم کنید
  3. درود چگونه میتوان با استفاده از حلقه ی فور یک سری آبجکت رو صفت هاشو تنظیم کنیم ؟! مثلا این قطعه کد من نوشتم ولی ارور میده نمیدونم چطور باید مدیرت کرد آرایه از ابجکت ها رو در جاوا public void ReadOnlyEditableIstrue(){ for (int i=0;i<myList.size();i++) { myList.get(i).setFocusable(false); } }
  4. نکات مهم در برنامه نویسی اندروید و جاوا. 1- فراموش نکنید که مقدار صفت android:updatePeriodMillis در تگ <appwidget-provider فایل xml/widget_info.xml بیانگر تایمری هست که کالبک onUpdate کلاس ویدجت صدا زده میشه. 2- در metadata ویدجت، مقدار صفت android:minHeight و android:minWidth تعیین کننده حداقل اندازه ویدجت هستش که باید 72dp (یعنی 1x1) باشه. ولی صفت android:layout_width و android:layout_height در layout ویدجت، تعیین کننده اندازه کنونی ویدجت هستش. 3- از انجایی که List متدی برای اضافه کردن عنصر نداره و سایزش هم ثابت هست، برای تبدیل Array به ArrayList باید به این روش عمل کنید: ArrayList<String> _arrayList = new ArrayList<String>(Arrays.asList(myArray)); 4- برای چک کردن وجود یک مقدار در آرایه کافیست به این صورت عمل کنید: Arrays.asList(myArray).contains(targetValue); 5- نکته جزیی: فراموش نکنید که HashMap در جاوا در واقع همون data structure هستش و نه آرایه! 6- نکته جزیی: زمانی از LinkedList استفاده کنید که قراره تعداد بسیار زیادی عملیات add/remove انجام بشه و نه عملیات random access. 7- نکته جزیی: متد length برای گرفتن طول String و متد length() برای گرفتن طول Array استفاده میشه. 8- همیشه در طراحی لیست/آرایه Boolean از BitSet استفاده کنید. BitSet سی پی یو و مموری cache friendly هستش. 9- آیا می دونید هر Object در جاوا 16 بایت فضا اشغال میکنه؟ 12 بایت برای خود شی و 4 بایت برای هدر شی. بدون متد و فیلد. 10- آیا می دونید String x = new String("abc"); با String y = new String("abc"); برابر(==) نیست؟ 11- هیچ کدام از کالبک های موجود در کلاس ویدجت(AppWidgetProvider) نیاز به صدازدن Superclass ها ندارن، بجز کالبک onReceive. (چون خالی هستن) 12- جدول زیر، لیست مواردی هست که درکجا باید از Context نوع Application یا Activity استفاده کنید: مورد/نوع Application Activity Toast X Dialogs / Views X Intent/Activity X Layout inflation X Service X Send broadcast X X Broadcast Receiver X X Resource values X 13- نکته جزیی: آیا می دونید android.util.Patterns.IP_ADDRESS فقط IPv4 رو شامل میشه؟ 14- نکته جزیی: با uninstall شدن برنامه، cache و تنظیمات برنامه هم حذف خواهند شد. 15- توسط متد ActivityManager.clearApplicationUserData() در اندروید 4.4 به بعد می تونید data تنظیمات برنامه رو حذف کنید. 16- هنگام کار با WebView، برای امنیت بیشتر بهتره تنظیمات setJavaScriptEnabled, setGeolocationEnabled, setAllowFileAccess رو false قرار بدید. 17- برنامه هایی که با یک کلید Sign شده و همگی از shared user Id یکسانی استفاده می کنن(در فایل AndroidManifest.xml) می تونن از فایلهای private یکدیگر استفاده کنن. 18- از اونجایی که جاوا از optional parameter پشتیبانی نمی کنه، به روش زیر می تونید این قابلیت رو شبیه سازی کنید: public void myMethod(final Object object, final boolean... enabled) { // ... if (enabled[0]) { // خخخخخخ } return; } 19- سعی کنید متغیرهای کلاس رو در خارج از متد constructor آماده سازی/Initialize کنید. (اینها مقادیر پیشفرض دارن و حتی قبل از اینکه سازنده کلاس صدا زده بشه مقدار دهی می شوند. پس دوباره به اونها مقدار ندید. بعلاه خوانایی کلاس راحت تر و سریع تر انجام میشه) 20- صفت android:layout_gravity محل قرار گیری (کل) ویدجت رو تعیین می کنه و صفت android:gravity محل قرارگیری محتوای ویدجت رو تعیین می کنه. 21- یادتون باشه که: فایلهای layout فقط برای طراحی قالب و چهارچوب صفحات برنامه هستن، styles.xml برای شکل دهی به عناصر قالب، dimens.xml برای تعیین اندازه و ابعاد عناصر، colors.xml برای رنگ بندی عناصر، strings.xml برای متون موجود در عناصر و... هستند. پس در ترکیب و قرارگیری اینها دقت کنید. 22- تغییر رفتار و امکانات keyboard اندروید در مقابل مقدار صفت inputype عنصر EditText: <EditText android:id="@+id/et_test" android:inputType="?????"/> نوع inputtype نوع Keyboard رفتار دکمه Enter شکلک Case حروف Suggestion کاراکترهای اضافی textLongMessage الفبا / پیشفرض ارسال / بعدی دارد lowercase دارد , و . و همه چیز textFilter الفبا / پیشفرض ارسال / بعدی دارد lowercase ندارد , و . و همه چیز textCapWords الفبا / پیشفرض ارسال / بعدی دارد Camel Case دارد , و . و همه چیز textCapSentences الفبا / پیشفرض ارسال / بعدی دارد Sentence case دارد , و . و همه چیز time اعداد ارسال / بعدی ندارد - ندارد فقط : textMultiLine الفبا / پیشفرض خط بعدی دارد lowercase دارد , و . و همه چیز number اعداد ارسال / بعدی ندارد - ندارد ندارد textEmailAddress الفبا / پیشفرض ارسال / بعدی ندارد lowercase ندارد @ و . و همه چیز بدون نوع الفبا / پیشفرض خط بعدی دارد lowercase دارد , و . و همه چیز textPassword الفبا / پیشفرض ارسال / بعدی ندارد lowercase ندارد , و . و همه چیز text الفبا / پیشفرض ارسال / بعدی دارد lowercase دارد , و . و همه چیز textShortMessage الفبا / پیشفرض شکلک دارد lowercase دارد , و . و همه چیز textUri الفبا / پیشفرض ارسال / بعدی ندارد lowercase ندارد / و . و همه چیز textCapCharacters الفبا / پیشفرض ارسال / بعدی دارد UPPERCASE دارد , و . و همه چیز phone اعداد ارسال / بعدی ندارد - ندارد * # . - / () W P N , + textPersonName الفبا / پیشفرض ارسال / بعدی دارد lowercase دارد , و . و همه چیز نکته: در صورتی که تنظیم Auto-capitalization در تنظیمات Keyboard فعال باشه، Case حروف رفتار پیشفرض خواهد داشت، در غیر اینصورت همه حروف کوچیک خواهند شد. نکته 2: زبان نوع Keyboard اعداد همگی انگلیسی 1234567890 می باشد. نکته 3: در صورتی که تنظیم Correction/Suggestion در تنظیمات Keyboard فعال باشه، Suggestion بدرستی رفتار خواهد کرد، درغیر اینصورت در همه موارد خاموش خواهد ماند. 23- مقدار center با مقدار center_vertical|center_horizontal و مقدار fill با مقدار fill_vertical|fill_horizontal در صفت android:gravity و صفت android:layout_gravity برابر هست. 24- برای حل مشکل موقعیت متن EditText در اندروید 5.0 کافیه مقدار صفت android:spacing رو 0dp قرار بدید. 25- برای نمایش تصاویر بسیار بزرگ(بیشتر از 2000 پیکسل) بهترین گزینه استفاده از WebView هستش. 26- رفتارهای متفاوت مقادیر FIT_CENTER و CENTER_INSIDE در صفت android:scaleType: - اگر تصویر بزرگتر از container باشه، مقدار FIT_CENTER و CENTER_INSIDE رفتار یکسانی خواهند داشت. - اگر تصویر کوچکتر از container باشه، مقدار FIT_CENTER تصویر رو scale خواهد کرد. - اگر تصویر کوچکتر از container باشه، مقدار CENTER_INSIDE تصویر رو بدون تغییر در مرکز قرار خواهد داد. 27- کاربرد تگ include با ویدجت ViewStub متفاوته! تگ include صرفاً محتوای XML فایل دیگر رو در جایی دیگر ضمیمه می کنه. ولی ویدجت ViewStub کلکسیونی از ویدجت ها می تونه باشه که در زمان نیاز نمایش یا مخفی شون کنه. 28- خلاصه اصطلاحاتی درباب سایز و کیفیت صفحه دستگاه اندروید: Screen size: بیانگر سایز فیزیکی صفحه دستگاه هستش که برای layout و ویدجت ها استفاده میشه. گروه بندی: small, normal, large, extra-large Screen density / DPI: بیانگر تراکم پیکسل های موجود در صفحه دستگاه هستش که به DPI یا همون Dot Per Inch معروفه. برای مثال دستگاهی با DPI low فقط تعداد اندکی پیکسل در صفحه فیزیکیش وجود داره پس تصاویر هم از کیفیت پایینی برخوردار هستن... گروه بندی: low-dpi, medium-dpi, high-dpi, xhigh-dpi, xxhigh-dpi, x*xxhigh-dpi (برای دسته بندی تصاویر و گرافیک استفاده میشه) Orientation: بیانگر شیوه نمایش به کاربر هستش. گروه بندی: ایستاده/portrait, خوابیده/landscape Resolution: بیانگر تعداد کل پیکسل های موجود در صفحه دستگاه هستش. گروه بندی: 320x240, 480x320, 800x480 و... Inch: بیانگر قطر فیزیکی صفحه هستش که از رادیکال ((طول*2)+(عرض*2)) بدست میاد. گروه بندی: 4.4", 4.7", 5", 10", 15" و... 29- نکته جزیی: از واحد sp فقط برای اندازه متون/font و از واحد dp برای اندازه ویدجت ها باید استفاده بشه. 30- شیوه صحیح و کوتاه full screen کردن Dialog: _dialog = new Dialog(this, LayoutParams.MATCH_PARENT); یا _dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); یا _dialog = new Dialog(this, WindowManager.LayoutParams.FLAG_FULLSCREEN); 31- در صورتی که پیچیدگی در عناصر صفحه برنامه وجود نداره، بجای RelativeLayout از LinearLayout استفاده کنید... به دلیل اینکه: 1- در LinearLayout عناصر Visibility.GONE و Visibility.VISIBLE شده بدرستی در کنار هم قرار میگیرن، ولی در RelativeLayout خیر. 2- در دستگاه های کوچیک، عناصر موجود در LinearLayout ثابت و منظم می مونن ولی عناصر موجود در RelativeLayout با به هم ریختگی بر روی هم قرار می گیرن. 3- برای تنظیم عناصر در LinearLayout نیازی به تعریف ID برای عناصر نیست، ولی در RelativeLayout نیاز هست تا تک تک عناصر ID گذاری بشن. 4- LinearLayout قابلیت تنظیم weight داره، ولی RelativeLayout نداره. 32- رایجترین resolution های دستگاه های اندروید: 240x320, 320x480, 480x800, 540x960, 640x360, 600x1024, 768x576, 800x400, 960x540, 1024x600, 1280x720, 1280x800, 1366x768, 1440x904, 1600x1200, 1920x1080, 1920x1200, 2048x1536, 2560x1440, 2560x1600 33- از آنجایی که کلاس های Anonymous سازنده ندارن، بهترین راه استفاده از instance initializers هستش. 34 - یادتون باشه که تقدم اجرای initializer ها در یک کلاس همیشه بصورت: Static initializer -> Instance initializer -> Constructor هستش. public class MyClass { // Constructor initializer public MyClass() { // #3 } // Static initializer static { // #1 } // Instance initializer { // #2 } } 35- یک دلیل رخداد خطای Performing stop of activity that is not resumed میتونه متغیرهای اکتیویتی باشن که توسط اندروید آزاد/free شده و اکتیویتی شما دیگر به مقدار اصلی/نهایی متغیر دسترسی نداره... لذا مقدار متغیر به پیشفرض/default تغییر کرده. (البته این مسله زمانی رخ میده که سیستم اندروید نیازمند حافظه بیشتری برای برنامه foreground داشته باشه، بنابراین توسط پاکسازی حافظه برنامه های background تامینش میکنه) 36- فقط زمانی متدهای setter/getter رو پیاده سازی کنید که در متد پردازش یا محاسباتی صورت میگیره... درغیر این صورت باید از field استفاده کنید که سرعتش هم 3 برابر بیشتر از متد هستش. (مگر اینکه نیاز به تصریح در Interface رو داشته باشید) 37- اگر در جاوا 5 به قبل، کلاس Thread رو instantiate کنید و متد start() ش رو صدا نزنید، memory leak انجام دادید! 38- دلیل رخداد خطای error: Error retrieving parent for item: No resource found that matches در برنامه Eclipse، نسخه اندروید و theme ای هست که انتخاب کردید... برای نمونه تم Holo در اندروید 2 موجود نیست و در صورت ایجاد پروژه با این مشخصات با این خطا مواجه میشید. 39- هرگز اطلاعات حساس و مهم رو بر روی SD Card ذخیره نکنید، مگر بکمک encryption و سطح دسترسی MODE_PRIVATE. 40- حتاالمکان سطح دسترسی ContentProvider برنامه رو محدود یا کلاً غیرفعال کنید... برای اینکار کافیه مقدار صفت android:exported در تگ activity رو false قرار بدید: <activity android:name="mypackage.myapp.myactivity" android:exported="false"> ... </activity> این کلاس ContentProvider، امکان دسترسی و اشتراک گذاری اطلاعات و دیتای برنامه شمارو برای دیگر برنامه ها فراهم میکنه. بنابراین لازمه که سطح دسترسیش محدود بشه. توجه: در اندروید نسخه 4.1 به قبل، بطور پیشفرض مقدار این صفت public هستش و در اندروید نسخه 4.2 به بعد مقدار این صفت private یا همون false هستش. ویرایش نرده استیل آکات
  5. سلام خدمت اساتید گرامی . من یه برنامه نوشتن که برای یادگیری لغاته . وقتی کاربر لغتی رو به بخش علاقه مندی اضافه می کنه لغت نمایش داده نمیشه و باید برنامه رو مجدد اجرا کرد تا لغت انتخاب شده به بخش علاقه مندی اضافه/ حذف بشه . همچنین بعد از هر بار اجرا لیست لغات تکرار میشه ( مثلا بار دوم از هر کدوم 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); } } }
  6. سلام به همه اساتید گرامی . من یه برنامه کتاب نوشتم که از دیتابیس خارجی استفاده کردم . و چون از 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); } } }
  7. سلام من تازه میخوام برنامه نویسی اندروید رو شروع کنم. درمورد زبان جاوا اطلاعات زیادی ندارم. اگر ممکنه کتاب یا فیلم آموزش جاوا برای برنامه نویسی اندروید بفرستید. با تشکر
  8. با سلاممن چند تا imageview دارم که وقتی روشون کلیک میکنم دستور info اجرا میشه اینم کدش: public class MainActivity extends Activity { Integer[] cardsArray{101,102,103,104,105,106,201,202,203,204,205,206}; int cardNumber =1; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); iv_11 =(ImageView)findViewById(R.id.iv_11); iv_12 =(ImageView)findViewById(R.id.iv_12); iv_13 =(ImageView)findViewById(R.id.iv_13); iv_14 =(ImageView)findViewById(R.id.iv_14); iv_11.setTag("0"); iv_12.setTag("1"); iv_13.setTag("2"); iv_14.setTag("3"); Collections.shuffle(Arrays.asList(cardsArray)); iv_11.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { theCard = Integer.parseInt((String) v.getTag()); info(iv_11, theCard); } }); iv_12.setOnClickListener(new View.OnClickListener() { @Override public void onClick (View v) { theCard = Integer.parseInt((String) v.getTag()); info(iv_12, theCard); }}); iv_13.setOnClickListener(new View.OnClickListener() { @Override public void onClick (View v) { theCard = Integer.parseInt((String) v.getTag()); info(iv_13, theCard); } }); iv_14.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { theCard = Integer.parseInt((String) v.getTag()); info(iv_14, theCard); } }); private void info(ImageView iv, int card) { if (cardNumber == 1) { firstCard = cardsArray[card]; if (firstCard > 200) { firstCard = firstCard - 100; } cardNumber = 2; iv.setEnabled(false); } else if (cardNumber == 2) { secondCard = cardsArray[card]; if (secondCard > 200) { secondCard = secondCard - 100; } cardNumber = 1; Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { calculate(); } }, 1000); } } وقتی متد info اجرا میشه متغییر های firstcard وsecendcard مقدار هایی رو دریافت میکنن.و اینم دستور if هستش: if (firstCard==secondCard){ } میخواستم بدونم چرا وقتی مقدار firstcard وsecendcard مساوی نیست دستور if اجرا میشه؟؟وقتی روی imageview ها با سرعت کلیک میکنم این اتفاق میفته ولی با کلاس log چک کردم firstcard وsecendcard مقدارشون متفاوت بود.
  9. با سلام خدمت دوستان میخام ده تا کلمه دلخواه رو بصورت string معرفی کنم و با زدن یک دکمه، بصورت تصادفی یک کلمه نمایش داده بشه. میشه راهنمایی کنین؟
  10. با سلام می خواستم ببینم چطور میشه به برنامه ای که ساخته شده و در مارکت ها منتشر شده یه دکمه یا عکس اضافه کرد مثل برنامه ی بازار که اپدیدت میشه برای مثال من یه برنامه رو منتشر کردم و بعد می خوام یه دکمه دیگه بهش اضافه کنم اگر باید از webview استفاده کرد توضیح بدین؟یا از فایل json ؟ توضیح لطفا با تشکر
  11. با سلام امروز در حال نوشتن کد در برنامه netbeans بودم وقتی که می خوام برنامه رو اجرا کنم با این ارور مواجه می شم( در ضمن اسم برنامه ppp هست) ممنون میشم کمکم کنید
  12. کلمه ساز اپلیکیشن کلمه ساز بهترین اپلیکیشن برای زیبا کردن کلمات و متن هستش شما می توانید با وارد کردن اسمتون,اسمتون رو زیبا کنید و می توانید برای هرکس که خواستید ارسال کنید می توانید اسمتون رودر فضای مجازی زیبا کنید _اپلیکیشن کلمه ساز بیشتر از 12 فونت داره _کپی کردن خیلی راحته _می توانید متن زیبا شده رو هرجا که خواستید پیست(paste) کنید _می تونید این متن هارو در شبکه های اجتماعی(telegram,cloob,instagram,facebook)قرار بدید _و این اپلیکیشن رو به صورت رایگان و با حجم کم دانلود کنید 【p】【o】【u】【y】【a】 ιllιlı.ıl p lııl o lııl u lııl y lııl a lıιllιlı. 『p』『o』『u』『y』『a』 ▂▃▅▆▇█ p █ o █ u █ y █ a █▇▆▅▃▂ ˜”*°•.˜”*°• pouya •°*”˜.•°*”˜ اگه می خواهید زیباترین اسم و پیام ها و متن ها را در فضای مجازی داشته باشید اپلیکیشن کلمه ساز بهترین اپلیکیشن هست توجه:دسترسی کامل به اینتر نت برای تبلیغات عدد هستش لینک مستقیم و دریافت از کافه بازار
  13. با سلام ، میشه با استفاده از حلقه های تکرار، کد برنامه ای رو بنویسین که اعداد بالاتر از 1000 رو بگیره و با فواصل 8 تایی وقتی کلیدی رو فشار بدیم یه متن دلخواه رو تو تکست ویو نمایش بده مثلا فقط به ازای اعداد 1008 و 1016 و1024 و 1032 و الی آخر یه متنی رو نمایش بده؟نمیدونم از کدوم دستور تکرار باید استفاده کرد...
  14. سلام امروز دارم برنامه نویسی جاوا رو از یک پکیج آموزشی میبینم تو پکیج هم اولش گفته که میخواد یک برنامه ساده بنویسه که پیامی رو نشون بده من هم تمام قسمت هاش رو اجرا کردم اما تو قسمت ایجاد class گیر کردم من دقیقا این رو نوشتم (اونجوری که خود پکیج می گفت) اما وقتی تو cmd اجراش می کنم این ارور می یاد لطفا کمکم کنید با تشکر
  15. با سلام من با زبان برنامه نویس جاوا کار می کنم این کد منه که یه عکس رو دانلود می کنه و در Notification نشون می ده public class MainActivity extends Activity { Button btn; DownloadManager DownloadManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn =(Button)findViewById(R.id.button1); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub DownloadManager =(DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE); Uri uri = Uri.parse("http://www.tutorialspoint.com/green/images/logo.png"); DownloadManager.Request request = new DownloadManager.Request(uri); request.setNotificationVisibility(Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); Long reference = DownloadManager.enqueue(request); } }); } } ولی خود عکس در دستگاه ذخیره می شه من می خوام تو خود پروژه ذخیره شه یعنی: در پوشه res/draweble تا ازش استفاده کنم راه حلش چیه؟ با تشکر
  16. با سلام در حال نوشتن برنامه کمیک بودم که به یه مشکل بر خوردم وقتی یه کمیک گذاشتم (حتی عکس ها فشرده شده بود) حجم اپلیکیشن زیاد شد و این اصلا خوب نیست می خوام کدی بنویسم که وقتی کاربر روی دکمه کلیک می کنه کمیکو دانلود کنه لطفا تو نوشتن کد کمکم کنید با تشکر
  17. سلام دوستان من دوتا لیست دارم از نوع استرینگ List<String> list1,list2 خوب حالا میخوام مقدار لیست اول رو با لیست دوم مقایسه کنم و ایتم های مساوی رو به یه لیست سوم اضافه کنم ممنون میشم راهنمایی کنید دقیقا چیکار باید بکنم
  18. سلام دوستان لطفا کمک کنین من هر کاری می کنم محصولات جاوا رو کامپیوترم نصب نمیشه مثلا می خوام jdk رو نصب کنم با این ارور روبه رو میشم . بقیشم همین ارور رو میدن. لطفا کمک کنین مرسی http://s6.picofile.com/file/8244387942/s.jpg[/img]