آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

توابع و کلاسهای کوچیک و مفید ( مشارکت کنید )

طاهر  9 سال پیش  7 سال پیش
+173 0

با سلام

در این تایپیک قصد دارم یکسری توابع و کلاسهای مفید رو که خودم در برنامه ها استفاده میکنم ، اینجا بزارم

تا مورد استفاده دوستان قرار بگیره

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

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

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

این توابع فقط برای ایده گرفتن میتونه مورد استفاده بشه و بسته به نیاز خودتون تغییرش بدین

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

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

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

لیست توابع :

1.  یه تابع کوچیک برای گرفتن تصاویر از پوشه asset

2. دو تابع برای تبدیل عکس ذخیره شده در دیتابیس بصورت bite[] به  bitmap  و drawable

3. بررسی وضعیت دسترسی به اینترنت

4. خواندن یک فایل متنی از پوشه  assets

5. خواندن یک فایل متنی از پوشه  raw

 6. اشتراک فایل apk برنامه در داخل برنامه

7. تابع خروج از برنامه

8. کلاس اسکرول افقی که حالت پیش فرض اون سمت راست باشه.

9. ارسال بازخورد به فیس بوک

10. ارسال بازخورد به اینستگرام

11. خروج از برنامه با دوبار زدن دکمه بازگشت

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

13. حذف یک پوشه به همراه کلیه محتویاتش شامل فایل ها و پوشه ها

14. بررسی وضعیت دسترسی به فلاش دوربین

15. نمایش پیغام بصورت toast در هر جای برنامه

+2 0
کاره بسیار جالب و مفیدیه انشالله موفق باشید در ضمن توضیحی مختصر هم برای هر تابع یا کلاس داده بشه خیلی عالی میشه سپاس (9 سال پیش)
+1 0
این خیلی خوبه طاهر جان ولی بهتر اینه که شما هم مثل دوستان دیگه در این تاپیک لینک یک پست باز کنید و مطالبتون رو به صلاحدید خودتون به رایگان یا برای معاوضه یا فروش بزارید که بانک سورسمون زودتر آماده بشه و در یک جا متمرکز باشه . باز هم هر طور میل شماست . (9 سال پیش)
+2 0
دوستان انشاالله در جریان این تاپیک هستید ! لینک (9 سال پیش)
+2 0
تا قسمت ویکی سایت راه بیفته این تایپیک میتونه مفید باشه برای خیلی ها (9 سال پیش)
+1 0
با سلام و خیلی ممنون که اطلاعات و تجربیات خود را به اشتراک می گذارید با تشکر (9 سال پیش)
0 0
آقا دستت درد نکنه (9 سال پیش)
0 0
ایول من پشتتونم (9 سال پیش)
+1 0
یکی از بهترین تاپیک های این مجموعه (9 سال پیش)
+2 0
به نظر من اگه یه توضیح کوچیک هم در زیر توابع داده بشه بد نیست (9 سال پیش)
0 0
دوست عزیز @طاهر، یه پیشنهاد دارم، با توجه به اینکه تعداد کدها داره زیاد میشه برای جستجوی سریعتر کدها و همچنین جلوگیری از درج کدهای تکراری لطفا تو همین اول پست لیست تمام کدهایی که تا الان گذاشته شده (منظورم نام شون هست) رو بزارید و کدهای جدید رو به انتهای لیست اضافه کنید. (7 سال پیش)
 برای این سوال 58 پاسخ وجود دارد.
پاسخ به سوال 
طاهر  9 سال پیش
+25 0

یه تابع کوچیک برای گرفتن تصاویر از پوشه asset

 public static Bitmap getBitmapFromAsset(Context paramContext, String strName)
{
AssetManager assetManager = paramContext.getAssets();
InputStream istr = null;

try {
istr = assetManager.open(strName);
}
catch (IOException e) {
e.printStackTrace();
}
Bitmap bitmap = BitmapFactory.decodeStream(istr);
return bitmap;
}
پاسخ به سوال 
طاهر  9 سال پیش
+20 0

دو تابع برای تبدیل عکس ذخیره شده در دیتابیس بصورت bite[] به  bitmap  و drawable 

 public static Drawable convertImageByteToDrawable(byte[] paramByte, String paramString)
{
return (Drawable) Drawable.createFromStream(new ByteArrayInputStream(paramByte), paramString);
}



public static Bitmap convertImageByteToBitmap(byte[] paramByte)
{
//Drawable localByteArrayInputStream = ConvertImageByteToDrawable(paramByte, paramString);
ByteArrayInputStream localByteArrayInputStream = new ByteArrayInputStream(paramByte);
//Drawable.createFromStream(localByteArrayInputStream, paramString);
return (Bitmap) BitmapFactory.decodeStream(localByteArrayInputStream);
}
پاسخ به سوال 
طاهر  9 سال پیش
+25 0

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

 /**
* returns True OR False
* */
public static boolean isPackageInstalled(Context context, String packagename) {
PackageManager pm = context.getPackageManager();
ApplicationInfo appInfo;
try {
//pm.getPackageInfo(packagename, PackageManager.GET_ACTIVITIES);
appInfo = pm.getApplicationInfo(packagename, PackageManager.GET_ACTIVITIES);
return true;
}
catch (NameNotFoundException e) {
return false;
}
}
0 0
مطمئنید این وضعیت دسترسی به اینترنت رو چک میکنه؟ فکر میکنم تیتر رو اشتباه نوشتید ;) (9 سال پیش)
+1 0
درسته اصلاح کردم ممنون از یاداوری (9 سال پیش)
پاسخ به سوال 
طاهر  9 سال پیش
+25 0

خیلی از موارد هست که اسم یک drawable رو داریم و میخوایم تصویر رو با اون عوض کنید یا بکگراند رو به اون تغییر بدیم

بهترین راه اینه که resourceid اش رو بدست بیارم و از توابع مربوطه استفاده کنیم :

  public static int getResourceId(Context context, String identifier, String value) {
try {
int resourceId = context.getResources().getIdentifier(value, identifier, context.getPackageName());
return resourceId;
}
catch (Exception e) {
e.printStackTrace();
return 0;
}
}

مثال :

ImageView imgCat= (ImageView) findViewById(R.id.imgCat);
int resourceId = getResourceId(G.context, "drawable", item.icon);
if (resourceId > 0)
imgCat.setImageResource(resourceId);
else
imgCat.setVisibility(View.INVISIBLE);

 

 
0 0
سلام و خسته نباشید به شما دوست عزیز من تازه کار هستم و به این قطعه کد شما خیلی نیاز دارم ولی اگه امکان داره یکم برام توضیح بده. در تابع getresourceId به جای ارگمان String value چه چیزی باید ارسال بشه به تابع؟ و نیز برای من به item.icon گیر میده. میشه یه توضیح دربارش بهم بدی؟ ممنون میشم اگه به تلگرامم پیام بدی یا email بفرستی برام @mammadgoldking mammad.ghaemi@gmail.com (7 سال پیش)
0 0
email: mammad.ghaemi@gmail.com telegram:@mammadgoldking (7 سال پیش)
پاسخ به سوال 
طاهر  9 سال پیش
+21 0

خواندن یک فایل متنی از پوشه  assets

  /*
* Read text file from assets folder
*/
public static void readFileFromAssetsFolder(Context paramContext, String paramStringFileName, TextView paramViewTextView, Boolean paramBooleanShowHtml) throws IOException {

InputStream inputStream = paramContext.getAssets().open(paramStringFileName);

StringBuilder text = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
try {
String line;
while ((line = reader.readLine()) != null) {
text.append(line);
text.append('\n');
}
if (paramBooleanShowHtml)
paramViewTextView.setText(Html.fromHtml(text.toString()));
else
paramViewTextView.setText(text);

} finally {
reader.close();

}

}

پاسخ به سوال 
طاهر  9 سال پیش
+19 0

خواندن فایل متنی از پوشه raw

 /*
* Read text file from raw folder
*/
public static void readFileFromRawFolder(Context paramContext, int paramIntFileName, TextView paramViewTextView, Boolean paramBooleanShowHtml) throws IOException {

InputStream inputStream = paramContext.getResources().openRawResource(paramIntFileName);
StringBuilder text = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
try {
String line;
while ((line = reader.readLine()) != null) {
text.append(line);
text.append('\n');
}
if (paramBooleanShowHtml)
paramViewTextView.setText(Html.fromHtml(text.toString()));
else
paramViewTextView.setText(text);

} finally {
reader.close();

}

}

پاسخ به سوال 
Hossein Kurd  9 سال پیش
+19 0

جسارتا

خواندن یک فایل متنی از asset


try { String body = new Scanner(G.appConfigs.currentActivity.getAssets().open("contact.txt")).useDelimiter("\\A").next(); }catch(Exception e){ Log.e(G.Logs.Error, "Error To Read 'contact.txt' In Asset: " + e); ExceptionHelper.catchMessage(e); }
+4 0
برادر بصورت یه تابع دربیاری خیلی بهتره ضمنا اولین پست رو هم یه مطالعه میکردی (9 سال پیش)
پاسخ به سوال 
MEHDI007  9 سال پیش
+30 0

ببخشید گفتم ما هم دانش کممون رو اشتراک بگذاریم

برای گرفتن (Android version) و API level

(Android version)ذخیره کردن آن در یک رشته (String) کد زیر:

 String androidOS = Build.VERSION.RELEASE;

 API LEVEL ذخیره کردن آن در یک رشته (int) کد زیر:

 int currentapiVersion = android.os.Build.VERSION.SDK_INT;
0 0
. (9 سال پیش)
پاسخ به سوال 
طاهر  9 سال پیش
+36 0

اشتراک فایل apk برنامه در داخل برنامه

 public static void sendAppItself(Activity paramActivity, String paramStringToastMsg) throws IOException {
Toast.makeText(paramActivity, paramStringToastMsg, Toast.LENGTH_LONG).show();
PackageManager pm = paramActivity.getPackageManager();
ApplicationInfo appInfo;
try {
appInfo = pm.getApplicationInfo(paramActivity.getPackageName(),
PackageManager.GET_META_DATA);
Intent sendBt = new Intent(Intent.ACTION_SEND);
// NOT THIS! sendBt.setType("application/vnd.android.package-archive");
sendBt.setType("*/*");
sendBt.putExtra(Intent.EXTRA_STREAM,
Uri.parse("file://" + appInfo.publicSourceDir));

Log.v("PACKAGEDIR: ", appInfo.publicSourceDir);
paramActivity.startActivity(Intent.createChooser(sendBt, "Share image using"));
// paramActivity.startActivity(sendBt);
}
catch (NameNotFoundException e1) {
e1.printStackTrace();
}

}
0 0
این کد جواب نمیده توی گوشی واقعی من توی اینجا مشکلمو بیان کردم لینک (8 سال پیش)
0 0
تو قسمت paramActivity چی باید بنویسیم؟ (8 سال پیش)
+1 0
برا paramActivity همون کلاس رو دادم حل شد (8 سال پیش)
پاسخ به سوال 
طاهر  9 سال پیش
+34 0

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

 /*
* Send Email for feadback
*/
public static void sendEmailFeadback(Activity paramActivity, String paramStringToastMsg, String paramStringPackage) {
Toast.makeText(paramActivity, paramStringToastMsg, Toast.LENGTH_LONG).show();
Intent localIntent1 = new Intent("android.intent.action.SEND");
localIntent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
String str = "";
try
{
str = paramActivity.getPackageManager().getPackageInfo(paramActivity.getPackageName(), 0).versionName;
localIntent1.setType("plain/text");
String[] arrayOfString = new String[1];
arrayOfString[0] = "info@negahetazehco.com";
localIntent1.putExtra("android.intent.extra.EMAIL", arrayOfString);
localIntent1.putExtra("android.intent.extra.SUBJECT", paramStringPackage + str + " Feedback");
localIntent1.putExtra("android.intent.extra.TEXT", "\n\n\n<from " + paramStringPackage + " " + str + ">");
paramActivity.startActivity(Intent.createChooser(localIntent1, "Send mail..."));
}
catch (PackageManager.NameNotFoundException localNameNotFoundException)
{
localNameNotFoundException.printStackTrace();
}
catch (Exception e) {
e.printStackTrace();
}
}
0 0
سلام این متد(ارسال ایمیل از داخل برنامه) 3 تا ورودی میخاد لطفا بفرمایید باید چه اصلاعاتی پر کنم (9 سال پیش)
0 0
از اسم ورودی ها مشخصه که هر کدام به چه کار میاد (9 سال پیش)
0 0
آیا این کد نیاز به permission حاصی دارد؟ (9 سال پیش)
0 0
خودم متوجه شدم. permission خاصی لازم نداره. فقط اگر روی گوشی تست می کنید، وای فای گوشی را روشن کنید تا کار کنه. (9 سال پیش)
0 0
سلام و خسته نباشید. اگه بخوایم که کاربر متوجه ارسال ایمیل نشه یعنی نمایش برنامه ها انجام نشه چی؟ خواهش میکنم به این مورد پاسخ بدید (9 سال پیش)
0 0
سلام و خسته نباشید. اگه بخوایم که کاربر متوجه ارسال ایمیل نشه یعنی نمایش برنامه ها انجام نشه چی؟ خواهش میکنم به این مورد پاسخ بدید (9 سال پیش)
0 0
(9 سال پیش)
پاسخ به سوال 
طاهر  9 سال پیش
+43 0

ارسال نظر ، دیدن جزئیات برنامه ، نصب برنامه در بازار

  /*
* Open app detail page in cafebazaar directly
*/
public static void openCafeBazaarFeadBack(Context paramContext, final String paramStringPackage, final String paramStringAction)
{
Intent inten;
if (paramStringAction.equals("rating"))
inten = new Intent(Intent.ACTION_EDIT); // submit rate for app
else if (paramStringAction.equals("detail"))
inten = new Intent(Intent.ACTION_VIEW); // view detail of app
else if (paramStringAction.equals("setup"))
inten = new Intent(Intent.ACTION_INSERT); // setup app directly
else
inten = new Intent(Intent.ACTION_VIEW); // view detail of app

inten.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
try {

inten.setData(Uri.parse("bazaar://details?id=" + paramStringPackage));
paramContext.startActivity(inten);
}
catch (android.content.ActivityNotFoundException anfe) {
inten.setData(Uri.parse("http://cafebazaar.ir/app/?id=" + paramStringPackage));
paramContext.startActivity(inten);
}
catch (Exception e) {
e.printStackTrace();
}

}
+1 0
مرسی :) همشون به درد بخور هستن باز هم بذارین (9 سال پیش)
+2 0
فکر میکنم دوستان باید از شما یک تشکر ویژه بکنن، این جور توابع رو برنامه نویسا برای راحتی کار خودشون بعد مدتها کارکردن و برنامه نوشتن تهیه می کنن و اینکه کسی چنین توابعی رو به اشتراک بذاره واقعا لطف بزرگی در حق باقی دوستان کرده، در واقع تجارب خودتون رو به اشتراک گذاشتید (9 سال پیش)
0 0
عالی بود ،ولی چرا فقط اکشن detail عمل می کنه؟ (9 سال پیش)
پاسخ به سوال 
طاهر  9 سال پیش
+22 0

تابع خروج از برنامه :

 /*
* Exit Of App
*/
public static void AppExit()
{
G.CurrentActivity.finish();
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
G.CurrentActivity.startActivity(intent);
System.exit(0);
}
+2 0
نقش اینتنت رو متوجه نشدم. میشه یکم توضیح بدید (9 سال پیش)
+1 0
با همون system.exit(0 خالی هم که میشه از برنامه خارج شد ! (9 سال پیش)
+1 0
این دستور برنامه رو از لیست RecentApp اندروید هم پاک میکنه ؟ کسی اگر میدونه لطفا این دستور رو بزاره (9 سال پیش)
0 0
منم همچین مشکلی رو دارم ینی میخوام که با خروج از برنامه از لیست RecentApp هم پاک بشه.. (8 سال پیش)
0 0
ممنون به G.context به اول finish اضافه میکنم ارور میده. چیکار کنم؟ (7 سال پیش)
پاسخ به سوال 
MEHDI007  9 سال پیش
+24 0

حالت عمودی و افقی برنامه.

برای اینکه Activity به حالت عمودی (portrait) برود، باید کدهای زیر را در میان کدهای Activity بنویسیم :

 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

برای اینکه Activity به حالت افقی (landscape) برود، باید کدهای زیر را در میان کدهای Activity بنویسیم :

 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+4 0
اگر این کد را درون ActivityEnhanced قرار دهیم کل پروژه به خوبی بر روی یک حالت ثابت می شود. (9 سال پیش)
0 0
آقا دستت درد نکنه (9 سال پیش)
پاسخ به سوال 
MEHDI007  9 سال پیش
+16 0

با استفاده از کلاس SimpleDateFormat

فرض کنید که بخواهیم تاریخ و زمان فعلی را به صورت شکل کلی زیر در یک رشته (String) داشته باشیم (البته سال میلادی) :

 

 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
String currentDateandTime = sdf.format(new Date());

بنابراین تاریخ و زمان فعلی در یک متغیر از جنس رشته (String) و با نام currentDateandTime ذخیره می شود.

 yyyy   -->   سال (year)
MM --> ماه (month)
dd --> روز (day)
HH --> ساعت (hour)
mm --> دقیقه (minute)
ss --> ثانیه (second)

 

+1 0
برادر قراره در این تایپیک توابع یا کلاس گذاشته بشه نه تکه کدهای ساده . لطف کن این کدها رو در یک تایپیک جداگانه قرار بده که نظم تایپیک بهم نخوره (9 سال پیش)
+1 0
بله منم با آقای "طاهر" موافقم، بصورت تابع بنویسید و ورودی و خروجی های لازم رو طوری قرار بدید که بشه در هرجا براحتی استفادش کرد، فکر می کنم بهتره برای بیشتر این توابع یه ورودی Activity یا Context هم تعریف کنید تا در کلاس های دیگه هم قابل اجرا باشن (9 سال پیش)
پاسخ به سوال 
طاهر  9 سال پیش
+17 0

کلاس اسکرول افقی که حالت پیش فرض اون سمت راست باشه.

 
public class RightAlignedHorizontalScrollView extends HorizontalScrollView {

public RightAlignedHorizontalScrollView(Context context) {
super(context);
}


public RightAlignedHorizontalScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}


public RightAlignedHorizontalScrollView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}


@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
super.onLayout(changed, l, t, r, b);
scrollTo(getChildAt(0).getMeasuredWidth(), 0);
}
}
0 0
من الان داخل یک اکتویتی و ایک ام ال یه اسکرول دارم که میخوام یک لایه داخل این اسکرول بزارم و چند تا دکمه یا هر چیزی داخلش این لایه که بشه به صورت اقفی اسکرول کرد .. خب باید بیام مثل کد بالا یه کلاس ایجاد کنم . حالا چطور این کلاس رو در اکتیوتی مورد نظر فرا بخونم و به اسکرول ربطش بدم و در ایکس ام ال اسکرول چه پارامتر هایی باید ذکر شه ؟؟؟ ممنون میشم جواب بدید (7 سال پیش)
پاسخ به سوال 
طاهر  9 سال پیش
+17 0

ارسال بازخورد به فیس بوک

 /*
* Open facebook app or site for show app page
*/
public static Intent openFaceBookFeadBack(Context paramContext, String paramStringFaceBookProfile, String paramStringFaceBookPage)
{
Intent localIntent = null;
try
{
paramContext.getPackageManager().getPackageInfo("com.facebook.katana", 0);
localIntent = new Intent("android.intent.action.VIEW", Uri.parse("fb://profile/" + paramStringFaceBookProfile));
return localIntent;
}
catch (Exception localException)
{
while (true)
localIntent = new Intent("android.intent.action.VIEW", Uri.parse("https://www.facebook.com/" + paramStringFaceBookPage));
}
}

پاسخ به سوال 
طاهر  9 سال پیش
+33 0

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

  @Override
public void onBackPressed()
{
if (back_pressed + 2000 > System.currentTimeMillis()) {
super.onBackPressed();
AppExit();
}
else
Toast.makeText(context, "نمایش پیغام لمس دوباره کلید بازگشت جهت خروج", Toast.LENGTH_LONG).show();

back_pressed = System.currentTimeMillis();

}

/*
* Exit Of Application
*/
public static void AppExit()
{
G.CurrentActivity.finish();
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
G.CurrentActivity.startActivity(intent);
System.exit(0);
}
0 0
. (9 سال پیش)
0 0
کار نمیکنه که :( (9 سال پیش)
0 0
The method startActivity(Intent) is undefined for the type String (9 سال پیش)
0 0
The method finish() is undefined for the type String (9 سال پیش)
0 0
برای G.CurrentActivity نام اکتیویتی جاری رو قرار بدید (9 سال پیش)
+2 0
با تشکر، فقط برای درست کار کردن متغیر back_pressed رو خارج از متد OnBackPressd به صورت فیلد تعریف کنید. (9 سال پیش)
0 0
اقا جریان این back_pressed‌چیه باید چیکارش کرد؟ (8 سال پیش)
پاسخ به سوال 
طاهر  9 سال پیش
+16 0

ارسال بازخورد به اینستگرام

 /*
* Open instagram app or site for show app page
*/
public static Intent openInstagramFeadBack(Context paramContext, String paramStringInstagramProfile, String paramStringInstagramPage)
{
Intent localIntent = paramContext.getPackageManager().getLaunchIntentForPackage("com.instagram.android");
try
{
paramContext.getPackageManager().getPackageInfo("com.instagram.android", 0);
localIntent.setComponent(new ComponentName("com.instagram.android", "com.instagram.android.activity.UrlHandlerActivity"));
localIntent.setData(Uri.parse("http://instagram.com/p/" + paramStringInstagramProfile + "/"));
return localIntent;
}
catch (Exception localException)
{
while (true)
localIntent = new Intent("android.intent.action.VIEW", Uri.parse("http://www.instagram.com/" + paramStringInstagramPage));
}
}
0 0
اقا طاهر خسته نباشید < این کد دقیقا چه میکنه ؟ پیج خاصی رو در اینستاگرام باز میکنه ؟ (9 سال پیش)
پاسخ به سوال 
AhmadVB  9 سال پیش
+30 0

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

(البته این سورس را قبلا از اینترنت گرفته ام و خودم ننوشته ام ، منبع)

 
private class SolarCalendar {

public String strWeekDay = "";
public String strMonth = "";

int date;
int month;
int year;


public SolarCalendar()
{
Date MiladiDate = new Date();
calcSolarCalendar(MiladiDate);
}


public SolarCalendar(Date MiladiDate)
{
calcSolarCalendar(MiladiDate);
}


private void calcSolarCalendar(Date MiladiDate) {

int ld;

int miladiYear = MiladiDate.getYear() + 1900;
int miladiMonth = MiladiDate.getMonth() + 1;
int miladiDate = MiladiDate.getDate();
int WeekDay = MiladiDate.getDay();

int[] buf1 = new int[12];
int[] buf2 = new int[12];

buf1[0] = 0;
buf1[1] = 31;
buf1[2] = 59;
buf1[3] = 90;
buf1[4] = 120;
buf1[5] = 151;
buf1[6] = 181;
buf1[7] = 212;
buf1[8] = 243;
buf1[9] = 273;
buf1[10] = 304;
buf1[11] = 334;

buf2[0] = 0;
buf2[1] = 31;
buf2[2] = 60;
buf2[3] = 91;
buf2[4] = 121;
buf2[5] = 152;
buf2[6] = 182;
buf2[7] = 213;
buf2[8] = 244;
buf2[9] = 274;
buf2[10] = 305;
buf2[11] = 335;

if ((miladiYear % 4) != 0) {
date = buf1[miladiMonth - 1] + miladiDate;

if (date > 79) {
date = date - 79;
if (date <= 186) {
switch (date % 31) {
case 0:
month = date / 31;
date = 31;
break;
default:
month = (date / 31) + 1;
date = (date % 31);
break;
}
year = miladiYear - 621;
} else {
date = date - 186;

switch (date % 30) {
case 0:
month = (date / 30) + 6;
date = 30;
break;
default:
month = (date / 30) + 7;
date = (date % 30);
break;
}
year = miladiYear - 621;
}
} else {
if ((miladiYear > 1996) && (miladiYear % 4) == 1) {
ld = 11;
} else {
ld = 10;
}
date = date + ld;

switch (date % 30) {
case 0:
month = (date / 30) + 9;
date = 30;
break;
default:
month = (date / 30) + 10;
date = (date % 30);
break;
}
year = miladiYear - 622;
}
} else {
date = buf2[miladiMonth - 1] + miladiDate;

if (miladiYear >= 1996) {
ld = 79;
} else {
ld = 80;
}
if (date > ld) {
date = date - ld;

if (date <= 186) {
switch (date % 31) {
case 0:
month = (date / 31);
date = 31;
break;
default:
month = (date / 31) + 1;
date = (date % 31);
break;
}
year = miladiYear - 621;
} else {
date = date - 186;

switch (date % 30) {
case 0:
month = (date / 30) + 6;
date = 30;
break;
default:
month = (date / 30) + 7;
date = (date % 30);
break;
}
year = miladiYear - 621;
}
}

else {
date = date + 10;

switch (date % 30) {
case 0:
month = (date / 30) + 9;
date = 30;
break;
default:
month = (date / 30) + 10;
date = (date % 30);
break;
}
year = miladiYear - 622;
}

}

switch (month) {
case 1:
strMonth = "فروردین";
break;
case 2:
strMonth = "اردیبهشت";
break;
case 3:
strMonth = "خرداد";
break;
case 4:
strMonth = "تیر";
break;
case 5:
strMonth = "مرداد";
break;
case 6:
strMonth = "شهریور";
break;
case 7:
strMonth = "مهر";
break;
case 8:
strMonth = "آبان";
break;
case 9:
strMonth = "آذر";
break;
case 10:
strMonth = "دی";
break;
case 11:
strMonth = "بهمن";
break;
case 12:
strMonth = "اسفند";
break;
}

switch (WeekDay) {

case 0:
strWeekDay = "یکشنبه";
break;
case 1:
strWeekDay = "دوشنبه";
break;
case 2:
strWeekDay = "سه شنبه";
break;
case 3:
strWeekDay = "چهارشنبه";
break;
case 4:
strWeekDay = "پنج شنبه";
break;
case 5:
strWeekDay = "جمعه";
break;
case 6:
strWeekDay = "شنبه";
break;
}

}

}


public static String getCurrentShamsidate() {
Locale loc = new Locale("en_US");
Utilities util = new Utilities();
SolarCalendar sc = util.new SolarCalendar();
return String.valueOf(sc.year) + "/" + String.format(loc, "%02d",
sc.month) + "/" + String.format(loc, "%02d", sc.date);
}
+4 0
خیلی خوب بود ، اینکه منبع را ذکر کردید ارزش کارتون رو بیشتر کرد. (9 سال پیش)
0 0
احمد جان این کد هارو من کپی کردم تو اکتیوتی اصلیم حالا برای طراحی حالت UI چه کنم (9 سال پیش)
پاسخ به سوال 
AhmadVB  9 سال پیش
+20 0

حذف یک پوشه به همراه کلیه محتویاتش شامل فایل ها و پوشه ها:

     boolean deleteRecursive(File fileOrDirectory) {

if (fileOrDirectory.isDirectory())
for (File child: fileOrDirectory.listFiles())
deleteRecursive(child);

return fileOrDirectory.delete();

}

این طور صدا زده می شود :

String sdCard = Environment.getExternalStorageDirectory().getAbsolutePath();
String path = sdCard+"/FolderName";
File f = new File(path);
if(deleteRecursive(f))
Log.i("LOG", path + " Deleted Seccessfully.");

نیاز به دسترسی زیر در Manifest دارد:

     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
0 0
حاجی دمت گرم (8 سال پیش)
پاسخ به سوال 
طاهر  9 سال پیش
+17 0

بررسی وضعیت دسترسی به فلاش دوربین

 @SuppressWarnings("unused")
private boolean isFlashAvailable(Camera camera) {
Parameters params = camera.getParameters();
List<String> flashModes = params.getSupportedFlashModes();
if (flashModes == null) {
return false;
}

for (String flashMode: flashModes) {
if (Parameters.FLASH_MODE_ON.equals(flashMode)) {
return true;
}
}

return false;
}
0 0
سلام کد شما رو کپی کردم تو برنامه از getParameters تو خط 3 خطا می گیره اینم پیغامشه The method getParameters() is undefined for the type Camera ممنون (8 سال پیش)
پاسخ به سوال 
طاهر  9 سال پیش
+17 0

نمایش پیغام بصورت toast در هر جای برنامه

  public static void showMessage(Activity activity, final String msg)
{
activity.runOnUiThread(new Runnable()
{

@Override
public void run()
{
Toast.makeText(G.context, msg, Toast.LENGTH_LONG).show();
}
});
}
پاسخ به سوال 
Alireza.b  9 سال پیش
+14 0

جستجو در یک رشته و رنگی کردن کلمات:

 public static String searchReplace(String value, String search) {
	if (search == null || search.equals(""))
	        return value;
value = value.replace(search, "<font color=\"red\"><b>" + search + "</b></font>"); return value; }
0 0
در لیست ویو بصورت معمول که نشون نمیده درسته ؟ (9 سال پیش)
0 0
آقا طاهر، اونجا باید توی editBox تعییر کنیم اگر متن حاری " (9 سال پیش)
پاسخ به سوال 
Alireza.b  9 سال پیش
+17 0

یک عدد رندوم بین یک بازه:

 public static int rand(int min, int max) {
	int rand = min + (int) (Math.random() * (max - min + 1));
	return rand;
}
0 0
شما که اینقدر زحمت کشیدید همه رو collection کنید rar کنید از یه جایی dl کنیم (9 سال پیش)
+2 0
لقمه آماده تا این حد؟ من یک کالکشن دارم از تمامی توابعی که لازم داشتم ، بهتره خودتون این کار رو بکنیدچون هم دسته بندی دخواهتون رو خواهید داشت هم بهتر متوجه می شید (9 سال پیش)
پاسخ به سوال 
سپهر  9 سال پیش
+13 0

 بزرگ کردن ویو با انیمیشن (Animation)

 public class AnimationProgress extends Animation {

protected final int originalHeight;
protected final int originalWidth;
protected final View view;
protected float perValueHight;
protected float perValueWidth;


public AnimationProgress(View view, int fromHeight, int toHeight, int fromWidth, int toWidth) {
this.view = view;
this.originalHeight = fromHeight;
this.originalWidth = fromWidth;
this.perValueHight = (toHeight - fromHeight);
this.perValueWidth = (toWidth - fromWidth);
}


@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
view.getLayoutParams().height = (int) (originalHeight + perValueHight * interpolatedTime);
view.getLayoutParams().width = (int) (originalWidth + perValueWidth * interpolatedTime);
view.requestLayout();
}


@Override
public boolean willChangeBounds() {
return true;
}
}
پاسخ به سوال 
طاهر  9 سال پیش
+11 0

کد بکاپ گرفتن از SharedPreferences

 private boolean saveSharedPreferencesToFile(File dst) {
boolean res = false;
ObjectOutputStream output = null;
try {
output = new ObjectOutputStream(new FileOutputStream(dst));
SharedPreferences pref =
getSharedPreferences(prefName, MODE_PRIVATE);
output.writeObject(pref.getAll());

res = true;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
if (output != null) {
output.flush();
output.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
return res;
}

@SuppressWarnings({ "unchecked" })
private boolean loadSharedPreferencesFromFile(File src) {
boolean res = false;
ObjectInputStream input = null;
try {
input = new ObjectInputStream(new FileInputStream(src));
Editor prefEdit = getSharedPreferences(prefName, MODE_PRIVATE).edit();
prefEdit.clear();
Map<String, ?> entries = (Map<String, ?>) input.readObject();
for (Entry<String, ?> entry : entries.entrySet()) {
Object v = entry.getValue();
String key = entry.getKey();

if (v instanceof Boolean)
prefEdit.putBoolean(key, ((Boolean) v).booleanValue());
else if (v instanceof Float)
prefEdit.putFloat(key, ((Float) v).floatValue());
else if (v instanceof Integer)
prefEdit.putInt(key, ((Integer) v).intValue());
else if (v instanceof Long)
prefEdit.putLong(key, ((Long) v).longValue());
else if (v instanceof String)
prefEdit.putString(key, ((String) v));
}
prefEdit.commit();
res = true;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}finally {
try {
if (input != null) {
input.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
return res;
}
 
0 0
. (9 سال پیش)
پاسخ به سوال 
طاهر  9 سال پیش
+12 0

تبدیل dp به px و برعکس:

 public static int dip2px(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density ;
return (int) (dpValue * scale + 0.5f);
}


public static int px2dip(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().density ;
return (int) (pxValue / scale + 0.5f);
}
پاسخ به سوال 
طاهر  9 سال پیش
+14 0

تشخیص روت بودن گوشی

 public static boolean isRooted() {
try {
Process process = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(
process.getOutputStream());
os.writeBytes("exit\n");
os.flush();
process.waitFor();
int i = process.exitValue();
if (i == 0)
return true;
else
return false;


} catch (Exception e) {
}
return false;
}
پاسخ به سوال 
طاهر  9 سال پیش
+9 0

پیدا کردن بزرگترین عدد بین هر چندتا عدد که دلتون بخواد !!!!!

 public static int max(int... i){
int max;
int c = i[0];
max=c;
for (int k = 1; k < i.length; k++){
if(i[k]>max)
max=i[k];
}
return max;
}

int i = max(2,-5,1000,50,60,600);
int j = max(1,8,4,54,87,468,354,156,357,68,354,68,34,69);
0 0
طاهر جان، توابع ها بسیار عالی و کاربردی هستن. دستت درد نکنه. فقط یه سوال، چرا بعضی از توابع پارامتر هایی که میگیرن، همراه با سه تا نقطه هستش ؟ دقیقآ مثل این تابعی که نوشتین (int ....i). چیزی خودم حدس میزنم، برای تعریف آرایه هستش. درسته ؟ ممنون (9 سال پیش)
0 0
منظور همون دریافت یک آرایه هستش (9 سال پیش)
پاسخ به سوال 
طاهر  9 سال پیش
+6 0

گرفتن MD5 یک رشته

 public static String getMD5(String s) throws Exception {
MessageDigest digest = java.security.MessageDigest.getInstance("MD5");
digest.update(s.getBytes());
byte messageDigest[] = digest.digest();
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < messageDigest.length; i++) {
String h = Integer.toHexString(0xFF & messageDigest[i]);
while (h.length() < 2)
h = "0" + h;
hexString.append(h);
}
return hexString.toString();
}
پاسخ به سوال 
mohsen-jj  9 سال پیش
+11 0

بررسی خالی بودن یا نبودن یک EditText  برای فهمیدن اینکه کاربر به سوال یا ... پاسخ داده یا نه ، چون خودم هرکاری میکردم error میداد بجز این روش که جواب داد :

 private boolean isEmpty(EditText etText) {
return etText.getText().toString().trim().length() == 0;
}
پاسخ به سوال 
mohsen-jj  9 سال پیش
+10 0

این متود نام و مدل گوشی کاربر رو بصورت String برمی گردنونه :

البته متود پایینیش هم هست که تکمیلش میکنه .

 public String getDeviceName() {
String manufacturer = Build.MANUFACTURER;
String model = Build.MODEL;
if (model.startsWith(manufacturer)) {
return capitalize(model);
} else {
return capitalize(manufacturer) + " " + model;
}
}


private String capitalize(String s) {
if (s == null || s.length() == 0) {
return "";
}
char first = s.charAt(0);
if (Character.isUpperCase(first)) {
return s;
} else {
return Character.toUpperCase(first) + s.substring(1);
}
}
پاسخ به سوال 
طاهر  9 سال پیش
+10 0

تشخیص اجرای برنامه روی شبیه ساز یا گوشی:

 public static boolean isEmulator() {
return Build.MODEL.equals("sdk") || Build.MODEL.equals("google_sdk");
}
پاسخ به سوال 
طاهر  9 سال پیش
+9 0

چرخش bitmap :

  public static Bitmap rotateBitmap(Bitmap source, int rotation, boolean recycle) {
if (rotation == 0) return source;
int w = source.getWidth();
int h = source.getHeight();
Matrix m = new Matrix();
m.postRotate(rotation);
Bitmap bitmap = Bitmap.createBitmap(source, 0, 0, w, h, m, true);
if (recycle) source.recycle();
return bitmap;
}
پاسخ به سوال 
طاهر  9 سال پیش
+10 0

دوتا متد برای تبدیل Bitmap به Drawable و برعکس

 public static Bitmap drawableToBitmap(Drawable drawable) {
if (drawable instanceof BitmapDrawable) {
return ((BitmapDrawable) drawable).getBitmap();
}

Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
drawable.draw(canvas);

return bitmap;
}

public static Drawable bitmapToDrawable(Context context, Bitmap bitmap) {
return new BitmapDrawable(context.getResources(), bitmap);
}
پاسخ به سوال 
Gandalf  9 سال پیش
+8 0

2 تا  back برای خروج از برنامه اولی toast دومی خروج

 private static final int TIME_INTERVAL =2000; // # milliseconds time between two click back
privatelong mBackPressed;


@Override
publicvoid onBackPressed()
{
if(mBackPressed + TIME_INTERVAL >System.currentTimeMillis())
{
super.onBackPressed();
return;
}
else{
Toast.makeText(getBaseContext(),"Tap back button in order to exit",Toast.LENGTH_SHORT).show();
}

mBackPressed =System.currentTimeMillis();
}
+3 0
این تابع قبلا درج شده لطفا از درج توابع تکراری جدا خودداری کنید (9 سال پیش)
0 0
دمت... (8 سال پیش)
پاسخ به سوال 
Hossein Kurd  9 سال پیش
+12 0

مخفی کردن View با  Animation

زمانی که می خواهیم با فشردنButton یک LinearLayout با هر عنصری مخفی شود :

view.setVisibility(View.GONE);

اما بدون Animation اجرای زیبایی نداره

private Animation fadeIn , fadeOut;
private AnimationSet animation;

private void animateLinearLayout(final View view){
fadeIn = new AlphaAnimation(0, 1);
fadeIn.setInterpolator(new DecelerateInterpolator());
fadeIn.setDuration(1000);

fadeOut = new AlphaAnimation(1, 0);
fadeOut.setInterpolator(new AccelerateInterpolator());
fadeOut.setStartOffset(500);
fadeOut.setDuration(500);

if(view.getVisibility() != View.GONE){
animation = new AnimationSet(false);
// animation.addAnimation(fadeIn);
animation.addAnimation(fadeOut);
view.startAnimation(animation);
view.setVisibility(View.GONE);
Log.i(G.Logs.Screen , "view.setVisibility(View.GONE)");

}else if(view.getVisibility() == View.GONE){
view.setVisibility(View.VISIBLE);
AnimationSet animation = new AnimationSet(false);
animation.addAnimation(fadeIn);
// animation.addAnimation(fadeOut);
view.startAnimation(animation);
Log.i(G.Logs.Screen , "view.setVisibility(View.VISIBLE)");
}
new CountDownTimer(1200 , 600){
@Override
public void onTick(long l) {
if(view.getVisibility() != View.GONE) {

}
}

@Override
public void onFinish() {
view.clearAnimation();
Log.i(G.Logs.Screen , "view.clearAnimation()");
}
};
}
پاسخ به سوال 
mohsen-jj  9 سال پیش
+11 0

شما میتونید با متودی که در پایین نوشتم به اس ام اس های دریافتی دسترسی پیدا کنید .

توضیحاتی در موررد کد ها میدم :

1 - در این متود لیستی از String که محتویات هر اس ام اس ( متن،شماره و زمان) هست رو به عنوان مقدار برگشتی در نظر گرفتیم و میتونیم مثلا به جای اضافه کردن به این لیست ، به دیتابیس خودمون اضافه شون کنیم و بعد توی یه لیست ویو نمایشش بدیم.

2 -در این متود متن پیام ، شماره و زمان دریافت پیام رو با استفاده از cursor بدست آوردیم و اگه میخواید چیزای دیگه مثل اسم کسی که پیام رو فرستاده و ... رو بدست بیارید میتونید تو اینترنت بگردید و پیدا کنید .

 public List<String> getSMS() {
List<String> sms = new ArrayList<String>();
Uri uriSMSURI = Uri.parse("content://sms/inbox");
Cursor cur = getContentResolver().query(uriSMSURI, null, null, null,
null);

while (cur.moveToNext()) {
String address = cur.getString(cur.getColumnIndex("address"));
String body = cur.getString(cur.getColumnIndexOrThrow("body"));
String date = cur.getString(cur.getColumnIndex("date"));

Long timestamp = Long.parseLong(date);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(timestamp);

int hour = calendar.get(calendar.HOUR);
int min = calendar.get(calendar.MINUTE);
int sec = calendar.get(calendar.SECOND);
String time = hour + " : " + min + " : " + sec;

sms.add("time : " + time + " Number: " + address + " Message: "+ body);

}
return sms;

}
0 0
. (9 سال پیش)
پاسخ به سوال 
***ali***  9 سال پیش
+8 0

کد روشن کردن بلوتوث و فعال کردن قابلیت جستجو

 public void onBluetooth(){
BluetoothAdapter Bluetooth = BluetoothAdapter.getDefaultAdapter();
if(Bluetooth == null)
{
Toast.makeText(this, "متاسفانه دستگاه شما از بلوتوث پشتیانی نمی کند !!!",Toast.LENGTH_LONG ).show();
}
else{
if(!Bluetooth.isEnabled()){
Bluetooth.enable();
Intent DiscIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
startActivity(DiscIntent);
}}}
 

کد بالا خودکار بلوتوث را روشن میکند. و  برای 120 ثانیه قابلیت جستجو میدهد. ولی اگر بخواهیم که با یک دیالوگ از کاربر بخواهیم که بلوتوث را فعال کند ، باید به صورت زیر  از اینتنت استفاده کنیم.

 public void onBluetooth(){
BluetoothAdapter Bluetooth = BluetoothAdapter.getDefaultAdapter();
if(Bluetooth == null)
{
Toast.makeText(this, "متاسفانه دستگاه شما از بلوتوث پشتیانی نمی کند !!!",Toast.LENGTH_LONG ).show();
}
else{
if(!Bluetooth.isEnabled()){
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivity(enableBtIntent);
Intent DiscIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
startActivity(DiscIntent);
}}}
 
پاسخ به سوال 
b.fat  9 سال پیش
+11 0

تابعی برای فرستادن ایمیل:

مهمترین تفاوت این تابع با تابعی که دوستان در چند پست قبل فرستاده بودند، این است که فقط لیستی از برنامه های ایمیل کاربر برایش باز می شود. (یعنی مثلا برنامه هایی مثل Facebook و Bluetooth و غیره نمایش داده نمی شوند)

منبع: http://stackoverflow.com/questions/8701634/send-email-intent

     private boolean sendEmail(String reciever, String subject, String textMessage) {
try {
Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto", reciever, null));
emailIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
emailIntent.putExtra(Intent.EXTRA_TEXT, textMessage);
startActivity(Intent.createChooser(emailIntent, "Send email..."));
return true;
}
catch (Exception e) {
e.printStackTrace();
return false;
}
}
0 0
ممنون - ولی چطور میشه فایل اتچ کرد ؟ (9 سال پیش)
پاسخ به سوال 
h_r_v  9 سال پیش
+22 0

بخوایید کسی صفحه اینستاگرامتون رو فالوو کنه :

به جای واژه yekteam نام کاربری خودتون رو توی اینستا بزارید!

 TextView txtFollow = (TextView) findViewById(R.id.txtFollow);
txtFollow.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
Uri uri = Uri.parse("http://instagram.com/_u/yekteam");
Intent likeIng = new Intent(Intent.ACTION_VIEW, uri);

likeIng.setPackage("com.instagram.android");

try {
startActivity(likeIng);
} catch (ActivityNotFoundException e) {
startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse("http://instagram.com/yekteam")));
}

}
});
+2 0
سلام نیما جان اکه نرم افزار اینستاگرام روی گوشی نصب نباشه کرش میکنه آیا ؟؟؟؟ (9 سال پیش)
+3 0
سلام مطابق کد اگر نرم افزار نصب نباشد، صفحه در بروزر باز خواهد شد. (9 سال پیش)
پاسخ به سوال 
Alireza.b  9 سال پیش
+8 0

ارسال ایمیل به همراه attach فایل:

final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE);
emailIntent.setType("plain/text");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,new String[]{"email"});
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "subject");
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,"Test");
//has to be an ArrayList
ArrayList<Uri> uris = new ArrayList<Uri>();
//convert from paths to Android friendly Parcelable Uri's
File source = new File("آدرس یک فولدر"); for (String file : source.listfiles())
{ File fileIn = new File(file); Uri u = Uri.fromFile(fileIn); uris.add(u); } emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris); context.startActivity(emailIntent);

اگر خواستید یک فایل رو attach کنید، کافیه بجای استفاده از foreach خودتون دستی این کار رو انجام بدین

پاسخ به سوال 
Criss  9 سال پیش
+15 0

من این کد جالب رو دیدم گفتم اینجا بزارم

با زدن کلید اینتر در EditText کاری انجام میشه

  urlText.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View view, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_ENTER) {
openBrowser();
return true;
}
return false;
}
});

}

/** Open a browser on the URL specified in the text box */
private void openBrowser() {
webView.loadUrl(urlText.getText().toString());
webView.requestFocus();
}

 

پاسخ به سوال 
Ghost  9 سال پیش
+9 0

سلام دوستان .

با این کد میتونید قسمت تنظیمات گوشیتون رو باز کنید :

 Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setClassName("com.android.settings", "com.android.settings.Settings");
startActivity(intent);

همین

0 0
سلام. اگر بخواهیم قسمت ویجت گوشی باز بشه چی؟ (9 سال پیش)
+1 0
سلام دوست عزیز . ببخشید دیر نظرت رو دیدم . الان باید برم بیرون . شب سورسش رو میگذارم ... (9 سال پیش)
پاسخ به سوال 
Ghost  9 سال پیش
+15 0

سلام دوستان .

با این کد میتونید یک کد USSD رو در برنامه اجرا کنید :

 String code = Uri.encode("#");
String ussd_one = "*" + "733" + code;
startActivityForResult(new Intent
("android.intent.action.CALL", Uri.parse("tel:" + ussd_one)), 1);, 1);

...

+1 0
راه افتادیـــــــــــــــــــــــــــــــا!!!! (9 سال پیش)
پاسخ به سوال 
Ghost  9 سال پیش
+19 0

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

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

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

 WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);

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

  try {
wallpaperManager.setBitmap(img_Name.getDrawingCache());
}
catch (Exception e) {
e.printStackTrace();
}

 img_Name اسم همون عکسی هست که قراره با پس زمینه گوشی ست بشه ...

اینم پرمیشن داخل منیفست :

 <uses-permission android:name="android.permission.SET_WALLPAPER" />

همین

+1 0
باید DrawingCache عکس موردنظر true باشه تا عکس بعنوان والپیپر ست بشه به اینصورت (img.setDrawingCacheEnabled(true (9 سال پیش)
0 0
سلام دوست عزیز . درست نمیدونم . ولی من از کد بالا استفاده میکنم جواب میده ؟! (9 سال پیش)
پاسخ به سوال 
Ghost  9 سال پیش
+13 0

سلام دوستان .

سورس اضافه کردن شورتکات روی دستکاپ گوشی :

این متد رو بگذارید توی کلاستون :

 private void ShortcutIcon() {

Intent shortcutIntent = new Intent(getApplicationContext(), ShortkatActivity.class);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

Intent addIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "Test");
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
Intent.ShortcutIconResource.fromContext(getApplicationContext(),
R.drawable.ic_launcher));
addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
getApplicationContext().sendBroadcast(addIntent);
}

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

این پرمیشن رو هم به منیفست اضافه کنید :

 <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />

همین

پاسخ به سوال 
nooriDeveloper  9 سال پیش
+15 0

جلوگیری از خاموش شدن صفحه :

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

برای غیر فعال کردن حالت بالا (ممکن است در یک دستور شرطی بخواهیم فقط در شرایطی خاص صفحه خاموش نشود)

 getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

 

0 0
perfect (8 سال پیش)
0 0
سلام کد شما رو کپی کردم تو برنامه از clearFlags و addFlags خطا می گیره اینم پیغامشه The method clearFlags(int) is undefined for the type Object ممنون می شم راهنمایی کنید (8 سال پیش)
+1 0
من از این کد تو برنامه خودم استفاده کردم، نباید مشکلی داشته باشه. لطفاً کدی که نوشتید رو بزارید تا بیشتر بشه راهنمایی کرد. البته دقت کنید کد بالا رو باید در متد onCreate و بعد از setContentView (بعد از جایی که لایه رو به اکتیویتی اختصاص دادید) بنویسید. (8 سال پیش)
پاسخ به سوال 
hamcalas  9 سال پیش
+7 0

چک کردن اینکه آیا سرویس درحال اجراست ؟

     //............check is service runing
private boolean isMyServiceRunning(Class<?> serviceClass) {
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
for (RunningServiceInfo service: manager.getRunningServices(Integer.MAX_VALUE)) {
if (serviceClass.getName().equals(service.service.getClassName())) {
return true;
}
}
return false;
}
//...................................

و برای صدا زدن  : 

 isMyServiceRunning(MyService.class)

منبع

 

پاسخ به سوال 
hamcalas  9 سال پیش
+13 0

گرفتن یک عکس از view دلخواه :

 public void screenshot(View view){
        view.getRootView();
String
state =Environment.getExternalStorageState();
if(Environment.MEDIA_MOUNTED.equals(state)){File picDir =newFile(Environment.getExternalStorageDirectory()+"/myPic");if(!picDir.exists()){ picDir.mkdir();} view.setDrawingCacheEnabled(true); view.buildDrawingCache(true);
Bitmap
bitmap = view.getDrawingCache();//
Date date = new Date();
String fileName ="mylove"+".jpg";File picFile =newFile(picDir +"/"+ fileName);
try
{ picFile.createNewFile();
FileOutputStream
picOut =newFileOutputStream(picFile); bitmap =Bitmap.createBitmap(bitmap,0,0, bitmap.getWidth(),(int)(bitmap.getHeight()/1.2));
boolean
saved = bitmap.compress(CompressFormat.JPEG,100, picOut);
if(saved){
Toast.makeText(getApplicationContext(),"Image saved to your device Pictures "+"directory!",Toast.LENGTH_SHORT).show();
}
else{//Error} picOut.close();}catch(Exception e){ e.printStackTrace();
}
view.destroyDrawingCache();
}
else{//Error}}

در مانفیست اضافه کنید:

 <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

 منبع

پاسخ به سوال 
mspm  9 سال پیش
+8 0

اموزش دریافت ip

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

  publicString getWifiApIpAddress(){WifiManager wifiManager =(WifiManager) getSystemService(WIFI_SERVICE);
int ipAddress = wifiManager.getConnectionInfo().getIpAddress();
returnString.format("%d.%d.%d.%d",(ipAddress &0xff),(ipAddress >>8&0xff),(ipAddress >>16&0xff),(ipAddress >>24&0xff));}
پاسخ به سوال 
matrix  9 سال پیش
+16 0

با سلام ؛ ساخت یک toast سفارشی با xml دلخواه.مثلا ایکن و متن و قیافه ای که خودتون دوس دارین:

 public static void toastShow(String message){

LayoutInflater inflater = G.CurrentActivity.getLayoutInflater();

View view = inflater.inflate(R.layout.layout_toast,

(ViewGroup) G.CurrentActivity.findViewById(R.id.linearTost));



TextView txtTileToast = (TextView) view.findViewById(R.id.txtTtitleaost);

txtTileToast.setText(message);

Toast toast = new Toast(G.CurrentActivity);

toast.setView(view);

toast.setGravity(Gravity.BOTTOM |

Gravity.CENTER_VERTICAL, 0, 0);

toast.setDuration(Toast.LENGTH_SHORT);

toast.show();}


و اینم فایل xml که میتونید به دلخواه تغییرش بدین:

 <LinearLayout

android:layout_width="wrap_content"

android:layout_height="wrap_content" android:gravity="center" android:padding="8dip">

+1 0
سلام دوست عزیز، مرسی از این کد، لطفا برای خواناتر شدنش ابتدا دکمه رو بزنید و بعد کدتون رو قرار بدید (9 سال پیش)
0 0
اون linear اخر یک لایه xml است. (9 سال پیش)
پاسخ به سوال 
Criss  8 سال پیش
+3 0

Hex Color To RGB

  int color = (int) Long.parseLong("ff0000", 16);
int r = (color >> 16) & 0xFF;
int g = (color >> 8) & 0xFF;
int b = (color >> 0) & 0xFF;

RGB Color To Hex

  String hexColor = String.format("#%02x%02x%02x", red, green, blue);
پاسخ به سوال 
cyberchief  8 سال پیش
+2 0

ارسال ایمیل توسط کاربر

 Intent i = new Intent(Intent.ACTION_SEND);
i.setType("message/rfc822");
i.putExtra(Intent.EXTRA_EMAIL  , new String[]{"recipient@example.com"});
i.putExtra(Intent.EXTRA_SUBJECT, "subject of email");
i.putExtra(Intent.EXTRA_TEXT   , "body of email");
try {
    startActivity(Intent.createChooser(i, "Send mail..."));
} catch (android.content.ActivityNotFoundException ex) {
    Toast.makeText(MyActivity.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
}
پاسخ به سوال 
Javid  8 سال پیش
+3 0

تبدیل رقم های انگلیسی به رقم فارسی در فونت فارسی

int persian_zero_unicode= 1632;
static char[] PersianChars = {'٠','١','٢','۳','۴','۵','۶','٧','٨','٩'};

public static String En2Per (String str) {

	StringBuilder builder = new StringBuilder();
	for(int i =0;i<str.length();i++) {
		if(Character.isDigit(str.charAt(i))) {
			builder.append(PersianChars[(int)(str.charAt(i))-48]);
		} else {
		builder.append(str.charAt(i));
		}
	}

	return builder.toString();

}
پاسخ به سوال 
Criss  8 سال پیش
+10 0

خط انداختن بین  هر چهار شماره کارت بانکی در حین تایپ :

 private void onEditTextInput() {
edtCard.setOnKeyListener(new OnKeyListener() {

@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode != KeyEvent.KEYCODE_DEL) {
int start = Math.max(edtCard.getSelectionStart(), 0);
int end = Math.max(edtCard.getSelectionEnd(), 0);
switch (edtCard.length()) {
case 4:
edtCard.getText().replace(Math.min(start, end), Math.max(start, end), "-", 0, 1);
break;
case 9:
edtCard.getText().replace(Math.min(start, end), Math.max(start, end), "-", 0, 1);
break;
case 14:
edtCard.getText().replace(Math.min(start, end), Math.max(start, end), "-", 0, 1);
break;
}
return true;
}
return false;
}
});
}

اگر کاربر شماره کارت 16 رقمی رو کپی / پیست کنه :

  String str = edtCard.getText().toString();
str = new StringBuilder(str).insert(str.length() - 4, "-").toString();
str = new StringBuilder(str).insert(str.length() - 9, "-").toString();
str = new StringBuilder(str).insert(str.length() - 14, "-").toString();
edtCard.setText(str);

 

پاسخ به سوال 
Criss  7 سال پیش
+2 0

اسکن کردن Sdcard و پیدا کردن فایل های مورد نظر

private String sdCard = Environment.getExternalStorageDirectory().getAbsolutePath();
public ArrayList<String> paths = new ArrayList<String>();


. . . onCreate() {

listOfMedia(new File(sdCard));

}

private void listOfMedia(File pFile) {
File[] list = pFile.listFiles();

for (File file : list) {
if (file.isDirectory()) {
Log.d("LOG", file + " IS DIR");
listOfMedia(file);
} else {
String path = file.getAbsolutePath();
if (path.contains(".mp4") || path.contains(".jpg")|| path.contains(".jpeg") || path.contains(".png")) {
paths.add(path);
Log.e("LOG", file + " ADD");
}
Log.i("LOG", file + " IS FILE");
}
}

Log.w("LOG", paths.size() + " DONE");
}
 
 برای اینکه فولدر های .nomeda رو نمایش ندید
 
 

private void listOfMedia(File pFile) {
File[] list = pFile.listFiles();

for (File file : list) {
if (file.isDirectory()) {
if (!new File(file, ".nomedia").exists() && !file.getName().substring(0,1).contains(".")) {
Log.d("LOG", file + " IS DIR");
listOfMedia(file);
}
} else {
String path = file.getAbsolutePath();
if (path.contains(".mp4") || path.contains(".jpg") || path.contains(".jpeg") || path.contains(".png")) {
paths.add(path);
Log.e("LOG", file + " ADD");
}
Log.i("LOG", file + " IS FILE");
}
}

Log.w("LOG", paths.size() + " DONE");
}
 

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

پاسخ به سوال 
hhgh4269  7 سال پیش
0 0

برای بررسی اتصال به اینرنت و اطلاعات اضافی می تونید از کلاس های NetworkInfo و ConnectivityManager استفاده کنید که اطلاعات جالبی رو در اختیارتون قرار می دن.

مثال :

public boolean isOnline() {
    ConnectivityManager cm =
        (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    return netInfo != null && netInfo.isConnectedOrConnecting();
}

برای استفاده از کد بالا حتماً مجوز زیر رو به برنامه اضافه کنید :


<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .