PDA

View Full Version : پرسش و پاسخ و رفع مشکلات برنامه نویسی اندروید



reza_azizi2010
یک شنبه 10 آذر 1392, 21:13 عصر
با سلام
میخاستم بدونم دیتابیس sqlite تا چه حجمی سبک کار میکنه؟
من یه برنامه دارم که بطور متناوب از اینترنت داده متنی میگیره و روی دیتابیس ذخیره میکنه ، مثلا روزانه 2 صفحه متن. حالا میخام بدونم در آینده مشکلی ایجاد میکنه؟

hamid_hr
دوشنبه 11 آذر 1392, 11:54 صبح
Maximum Database Size

Every database consists of one or more "pages". Within a single database, every page is the same size, but different database can have page sizes that are powers of two between 512 and 65536, inclusive. The maximum size of a database file is 2147483646 pages. At the maximum page size of 65536 bytes, this translates into a maximum database size of approximately 1.4e+14 bytes (140 terabytes, or 128 tebibytes, or 140,000 gigabytes or 128,000 gibibytes).

This particular upper bound is untested since the developers do not have access to hardware capable of reaching this limit. However, tests do verify that SQLite behaves correctly and sanely when a database reaches the maximum file size of the underlying filesystem (which is usually much less than the maximum theoretical database size) and when a database is unable to grow due to disk space exhaustion.

http://www.sqlite.org/limits.html

abbasalim
دوشنبه 11 آذر 1392, 12:37 عصر
عجبیه تو این چند روز سه نفر این سوال رو پرسیده. یعنی واقعا قبلش داخل انجمن یا موتورهای جستجو سرچ نمیکنن :اشتباه:

reza_azizi2010
دوشنبه 11 آذر 1392, 17:52 عصر
سلام
من میخام وقتی دارم از سرور اطلاعات میگیرم، یه دیالوگ لودینگ نمایش داده بشه و بعد از پایان کار بسته بشه.
متد دیالوگ و متد دریافت اطلاعات از سرور هرکدوم به تنهای کار میکنن اما وقتی باهم صدا میزنم دستگاه قفل میکنه.
من از handler هم استفاده کردم اما بازم قفل میکنه.
میشه راهنمایی کنید

rubiks.kde
دوشنبه 11 آذر 1392, 18:05 عصر
باید از asynctask استفاده کنید .دقیقا برای همین کار ایجاد شده.

reza_azizi2010
دوشنبه 11 آذر 1392, 18:10 عصر
باید از asynctask استفاده کنید .دقیقا برای همین کار ایجاد شده.

مشکل شد دوتا!
یبار قبلا کارم به asynctask گیر کرده بود واسه نشون دادن Progress bar توی دیالوگ، اینقدر گیج شدم که بیخیال نمایش Progress bar شدم!
ممنون میشم راهنمایی کنید
در حد ابتدایی!

rubiks.kde
دوشنبه 11 آذر 1392, 18:19 عصر
روش کلی رو به این صورت برید جلو. تابع protected Dialog onCreateDialog رو داخل اکتیویتی بنویسید.

public static final int DIALOG_DOWNLOAD_PROGRESS = 0;
private ProgressDialog mProgressDialog;

@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DIALOG_DOWNLOAD_PROGRESS:
mProgressDialog = new ProgressDialog(this);
mProgressDialog.setMessage("waiting 5 minutes..");
mProgressDialog.setProgressStyle(ProgressDialog.ST YLE_HORIZONTAL);
mProgressDialog.setCancelable(false);
mProgressDialog.show();
return mProgressDialog;
default:
return null;
}
}

بعد کلاس دانلود رو به این صورت پیاده کنید

private class DownloadZipFileTask extends AsyncTask<String, String, String> {

@Override
protected void onPreExecute() {
super.onPreExecute();
showDialog(DIALOG_DOWNLOAD_PROGRESS);
}

@Override
protected String doInBackground(String... urls) {
//Copy you logic to calculate progress and call
publishProgress("" + progress);
}

protected void onProgressUpdate(String... progress) {
mProgressDialog.setProgress(Integer.parseInt(progr ess[0]));
}

@Override
protected void onPostExecute(String result) {
dismissDialog(DIALOG_DOWNLOAD_PROGRESS);
}


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

reza_azizi2010
دوشنبه 11 آذر 1392, 18:28 عصر
روش کلی رو به این صورت برید جلو. تابع protected Dialog onCreateDialog رو داخل اکتیویتی بنویسید.

public static final int DIALOG_DOWNLOAD_PROGRESS = 0;
private ProgressDialog mProgressDialog;

@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DIALOG_DOWNLOAD_PROGRESS:
mProgressDialog = new ProgressDialog(this);
mProgressDialog.setMessage("waiting 5 minutes..");
mProgressDialog.setProgressStyle(ProgressDialog.ST YLE_HORIZONTAL);
mProgressDialog.setCancelable(false);
mProgressDialog.show();
return mProgressDialog;
default:
return null;
}
}

بعد کلاس دانلود رو به این صورت پیاده کنید

private class DownloadZipFileTask extends AsyncTask<String, String, String> {

@Override
protected void onPreExecute() {
super.onPreExecute();
showDialog(DIALOG_DOWNLOAD_PROGRESS);
}

@Override
protected String doInBackground(String... urls) {
//Copy you logic to calculate progress and call
publishProgress("" + progress);
}

protected void onProgressUpdate(String... progress) {
mProgressDialog.setProgress(Integer.parseInt(progr ess[0]));
}

@Override
protected void onPostExecute(String result) {
dismissDialog(DIALOG_DOWNLOAD_PROGRESS);
}


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

مرسی همشهری!
البته اون پروژه رو که گفتم بیخیال شدم! الان مشکل فقط نشون دادن یه پیغام لودینگ معمولیه. یعنی پروگرس بار ندارم. البته چیزی قرار نیست دانلود کنم. درواقع باید یسری json از سرور بگیرم. الان کدهای وصل شدن به سرور و اینارو کجا باید بنویسم؟

rubiks.kde
دوشنبه 11 آذر 1392, 19:39 عصر
خب اگه این طوره کار راحت تر خواهد بود.

شما تنها از کلاس DownloadZipFileTask استفاده کنید این و تنها از سه تابع onPreExecute و doInBackground و PostExecute رو داخلش بنویسید.

توی تابع onPreExecute دایالوگ رو نشون بدید و داخل doInBackground کارهای مربوط به سرور و json رو انجام بدید بعد در تابع onPostExecute دایالوگ رو ببندید

reza_azizi2010
دوشنبه 11 آذر 1392, 20:15 عصر
بعد از اضافه کردن اون کلاس، میخام سیو کنم این پیغام خطا رو میده :ناراحت:

http://upload.tehran98.com/upme/uploads/87fb5c90d0f2a9991.jpg

reza_azizi2010
دوشنبه 11 آذر 1392, 20:19 عصر
class ConectToServer extends AsyncTask<String, null, void> {

@Override
protected void onPreExecute() {
super.onPreExecute();
ShowDialog(true);
}


@Override
protected String doInBackground(String... urls) {
return null;
//Copy you logic to calculate progress and call
// publishProgress("" + progress);


}


@Override
protected void onPostExecute(String result) {
ShowDialog(false);
}

reza_azizi2010
دوشنبه 11 آذر 1392, 20:20 عصر
خط اول مقادیر باید چطوری ست بشه؟ من هیچ ورودی و خروجی ندارم؟

reza_azizi2010
دوشنبه 11 آذر 1392, 20:44 عصر
اون مشکل سیو حل شد ، یعنی به این دلیل بود که مقادیر ورودی خروجی رو تغییر داده بودم، الان این اررور میده :
12-02 21:26:12.213: E/AndroidRuntime(3824): java.lang.RuntimeException: An error occured while executing doInBackground()

reza_azizi2010
دوشنبه 11 آذر 1392, 21:51 عصر
هیچ وقت نتونستم با AsyncTask کار کنم! فکر کنم ایندفعه هم باید بیخیال شم :ناراحت:
هزار خط ارور میده

rubiks.kde
دوشنبه 11 آذر 1392, 22:05 عصر
شما کدی که باید داخل doInBackground بنویسید رو قرار بدید.چون این خطا مربوط به کد داخل doInBackground است.

na_kh_2008
دوشنبه 11 آذر 1392, 22:34 عصر
سلام به روی گل همه برو بچه های برنامه نویس
من تازه میخوام با ایکلیپس کار کنم اما زمان اجرا خطای زیر رو میده
[2007-01-07 22:52:20 - asas] Android Launch!
[2007-01-07 22:52:20 - asas] adb is running normally.
[2007-01-07 22:52:20 - asas] Could not find asas.apk!
به نظر شما مشکل چیه؟ کسی تجربه داشته ؟
پیشاپیش ممنونم

houtanbarname
جمعه 15 آذر 1392, 23:21 عصر
http://barnamenevis.org/showthread.php?430018-پرسش-و-پاسخ-و-رفع-مشکلات-برنامه-نویسی-اندروید&highlight=%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87+%D9 %86%D9%88%DB%8C%D8%B3%DB%8C+%D8%A7%D9%86%D8%AF%D8% B1%D9%88%DB%8C%D8%AF

rubiks.kde
شنبه 16 آذر 1392, 00:05 صبح
سلام
آیا کسی میتونه dexprotector رو کرک کنه
یک برنامه برای encrypt کردن برنامه وحتی بیشتر از اون فایل های resource برنامه نوشته شده با اندروید هست

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

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

houtanbarname
شنبه 16 آذر 1392, 14:30 عصر
http://barnamenevis.org/showthread.php?430018-پرسش-و-پاسخ-و-رفع-مشکلات-برنامه-نویسی-اندروید&highlight=%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87+%D9 %86%D9%88%DB%8C%D8%B3%DB%8C+%D8%A7%D9%86%D8%AF%D8% B1%D9%88%DB%8C%D8%AF

shs1377
شنبه 16 آذر 1392, 18:23 عصر
سلام به روی گل همه برو بچه های برنامه نویس
من تازه میخوام با ایکلیپس کار کنم اما زمان اجرا خطای زیر رو میده
[2007-01-07 22:52:20 - asas] Android Launch!
[2007-01-07 22:52:20 - asas] adb is running normally.
[2007-01-07 22:52:20 - asas] Could not find asas.apk!
به نظر شما مشکل چیه؟ کسی تجربه داشته ؟
پیشاپیش ممنونم

لطف کنید نسخه sdk تون ، platform-tools تون، adt و build-tools رو بگید برای منم پیش آمده اول نسخه هاتون رو بگید

houtanbarname
شنبه 16 آذر 1392, 19:12 عصر
http://barnamenevis.org/showthread.php?430018-پرسش-و-پاسخ-و-رفع-مشکلات-برنامه-نویسی-اندروید&highlight=%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87+%D9 %86%D9%88%DB%8C%D8%B3%DB%8C+%D8%A7%D9%86%D8%AF%D8% B1%D9%88%DB%8C%D8%AF

Hadi.Me
جمعه 22 آذر 1392, 07:14 صبح
سلام دوستان
من میخوام برنامه به صورت fullscreen اجرا بشه باید چیکار کنم؟ (یعنی اون کشوی خود اندروید هم نباشه! مثل بازی ها)

yousef1386
شنبه 07 آذر 1394, 11:23 صبح
با سلام و خسته نباشید
من یه کتاب به برنامه B4A نوشتم ولی وقتی این برنامه رو در گوشی ها ی با اندروید پایین و صفحه نمایش کوچک نصب می کنم متن مشاهده نمی شه و در گوشی های دیگه مشکلی نداره . خواهشا برای حل مشکل کمکم کنید . ممنون
اینم کد:

#Region Activity Attributes
#FullScreen: True
#IncludeTitle: false
#End Region

Sub Process_Globals

End Sub

Sub Globals
Dim panelheight As Int
Dim text As String
Dim strUtil As StringUtils
Dim ht As Float
Dim mfont As Typeface
Private ScrollView1 As ScrollView
Private lblPosition As Label
Dim lbltest As Label

End Sub

Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("2")

text= File.ReadString(File.DirAssets,"aashoora.txt")
mfont=Typeface.LoadFromAssets("mitra.ttf")

scroll

End Sub

Sub scroll

ScrollView1.Initialize(500dip)
Activity.AddView(ScrollView1, 5%x, 35%y, 99%x, 60%y)
panelheight=0
lbltest.Initialize("lbltest")
ScrollView1.Panel.AddView(lbltest,2dip, panelheight, 90%x-5dip, 50dip)
lbltest.TextSize=20
lbltest.TextColor=Colors.black
ht= art (text,lbltest,mfont,25)
panelheight=panelheight+ht+25dip
panelheight=panelheight+80dip
ScrollView1.Panel.Height=panelheight

End Sub
Sub art(txt As String,leb As Label,font As Typeface,size As Int) As Float
Dim before,after As Float
Dim Obj1 As Reflector
leb.text=txt
leb.TextSize=size
leb.Gravity=Gravity.CENTER
leb.Left=leb.Left
leb.Typeface=mfont
ht = strUtil.MeasureMultilineTextHeight(leb , txt)
Obj1.Target = leb
before = Obj1.RunMethod("getLineHeight")
Obj1.Target = leb
Obj1.RunMethod3("setLineSpacing", .10, "java.lang.float", 2.5, "java.lang.float")
Obj1.Target = leb
after = Obj1.RunMethod("getLineHeight")
ht = ((after * ht)/before)
leb.Height = ht
Return ht

End Sub
Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

gilpardaz
جمعه 13 آذر 1394, 11:20 صبح
با سلام
وقتی برنامه ای که با b4a نوشتم میخواد اجرا بشه اول کار نزدیک به 10 ثانیه پیغام
waiting for ide debuger to connect
رو نمایش میده بعد برنامه اجرا میشه
لطفا کمکم کنید که چطور این پیغام نیاد و بلافاصله برنامه اجرا بشه .؟؟؟؟ خیلی تو ذوق آدم میخوره >>>

AGENT-20
جمعه 13 آذر 1394, 11:34 صبح
لطفا سوال منم جواب بدید

http://barnamenevis.org/showthread.php?513120-%D8%A7%D8%B1%D8%B3%D8%A7%D9%84-%D8%A8%D8%A7%D9%86%DA%A9-%D9%87%D9%86%DA%AF%D8%A7%D9%85-%D8%A8%D9%84%D9%88%D8%AA%D9%88%D8%AB-%DA%A9%D8%B1%D8%AF%D9%86-%D8%A8%D8%A7-%D8%B2%D8%A7%D9%BE%DB%8C%D8%A7&p=2282852

parsehsasan
جمعه 13 آذر 1394, 20:24 عصر
سلام

من یک Gridview دارم با تعدادی تصویر و برای هر تصویر هم یک عنوان
میخواستم یک جستجو بزارم برای Gridview که عناوین رو جستجو کنه و نتایج قابلیت کلیک داشته باشن

ممنون میشم کمک کنید

mcn.nice
دوشنبه 16 آذر 1394, 15:55 عصر
سلام خسته نباشید .
بنده یک برنامه ایجاد کردم که داده هاشو از اینترنت باید دریافت کنه (برنامه برای نمایش اطلاعات سایت) برنامه زمانیکه یک رشته ساده را از اینترنت می فرستم درست عمل میکنه و نمایش میده ولی نمیدونم چرا زمانیکه آرایه ای حاوی رشته ها را می خواهد بفرستد مقدار خالی را نمایش می دهد !!

اینم کد دریافت اطلاعات از سرور :



try {

// Building Parameters List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("action", "نرم افزار")); // defaultHttpClient DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(url); UrlEncodedFormEntity entity = new UrlEncodedFormEntity(params); entity.setContentEncoding(HTTP.UTF_8); entity.setContentType("application/json"); httpPost.setEntity(entity); HttpResponse httpResponse = httpClient.execute(httpPost); HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } try { BufferedReader reader = new BufferedReader(new InputStreamReader( is, "iso-8859-1"), 8); final StringBuilder sb = new StringBuilder(); String line = null; int i=0; while ((line = reader.readLine()) != null) { sb.append(line); items.add(new listviewitem() {{ imgview=R.drawable.ic_launcher; String my_string_1 = new String(sb.toString().getBytes("ISO-8859-1"),"UTF-8"); txttitel=my_string_1; }}); } is.close();



اینم کد php


$al=mysqli_query($con,"SELECT post_title FROM wp_cityposts where post_type='post'"); $response = array(); while($r = mysql_fetch_assoc($al)) { $response[]=$r; } // } //echo json_encode($response[]); print($response);


من یک شمارنده که قرار دادم حلقه فایل php 1056 بار اجرا میشه ولی چیزی داخل برنامه ارسال نمی گردد!

sowieso2020
دوشنبه 12 مهر 1395, 01:58 صبح
با سلام و خسته نباشید. اکلیپس من ورژن جدید هست و خوب کار می کرد. مینیمم sdk رو از 4.4 به 3.0 تغییر دادم، اررور می گیره و زیر R ها موقع لینک دادن خط قرمز میکشه مثلا R.id.btn_massege_call
جاوا و اکلیپس رو دوباره نصب کردم و لی نشد. ممنون می شم راهماییم کنین.
عکس خطاها:
http://www.axgig.com/images/03817384561868504253 (http://www.axgig.com/images/03817384561868504253.jpg)

jahani.apm@gmail.com
یک شنبه 15 مهر 1397, 11:35 صبح
149051

باسلام ، اندروید استودیو آپدیت کردم و این پیغام میده، ممنون میشم کسی راهنمایی کنه.