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

اموزش برنامه نویسی اندروید تخصصی

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

اموزش برنامه نویسی اندروید تخصصی

۷ مطلب در مهر ۱۳۹۹ ثبت شده است

در این سری از آموزش برنامه نویسی اندروید به آموزش نمایش ListView در فرگمنت خواهیم پرداخت همانطور که قبلا هم گفته بودم مبحث فرگمنت (Fragment) بسیار مهم است در ادامه با ما همراه باشید تا این مبحث را نیز فرا گیرید.

 

وارد پوشه layout شده و یک فایل به نام fragmentlayout.xml ایجاد کرده و کدهای زیر را در آن قرار دهید.

  • vahid hasani

Toast سفارشی

vahid hasani | | ۰ نظر

توست یک پیام را به کاربر نمایش می دهد و  بعد از چند لحظه از بین می رود.در این آموزش می خواهیم یک Toast را طراحی کنیم و اینکه بتوانیم در داخل توست از تصویر هم استفاده کنیم.برای شروع کار یک پروژه جدید ایجاد می کنیم و نام آن را  Toast قرار می دهیم.ب رروی لایه اصلی برنامه main.xml یک Button قرار می دهیم تا زمانی که روی آن کلیک شد پیغام برنامه را به کاربر نمایش دهد.

  • vahid hasani

 

**با استفاده از کد زیر می توانیم نام تمامی رشته های (Strings) تعریف شده در فایل strings.xml در پروژه اندروید را به صورت یک آرایه (Array) از جنس رشته (String)، به دست آوریم :

 

Field[] fields = R.string.class.getFields();

String[] allStringsNames = new String[fields.length];

for (int  i =0; i < fields.length; i++) {          

    allStringsNames[i] = fields[i].getName();

}

 

بنابراین نام تمامی رشته های (Strings) تعریف شده در فایل strings.xml در پروژه اندروید را در آرایه ای با نام allStringsNames خواهیم داشت. دقت شود که برای استفاده از کد بالا، package زیر را وارد (import) می کنیم (دستور کامل import را نوشته ایم) :

import java.lang.reflect.Field;


 

  • vahid hasani

 

به دو دلیل:

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

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

چه فرقی بین عکس های وکتور با عکس های معمولیه ؟

 

.ببینید تصاویر معمولی از قسمت های  کوچیکی به نام پیکسل تشکیل شدن  یعنی اگر روی یه عکس زوم کنیم میبینیم که به مربع های کوچیکی تقسیم بندی شدن.  هر پیکسل از سه تا عدد تشکیل شده که هر عدد میتونه از صفر تا ۲۵۶ باشه  که این سه تا عدد هر کدومشون به یه رنگ  قرمز سبز آبی اشاره میکنن  و مقدار این عداد شدته رنگ ها رو تعیین میکنه یعنی هر چی عدد رنگ ها به ۲۵۶ نزدیک تر باشه شدت اون رنگ بیشتر و هر چی به صفر نزدیک تر باشه  شدت رنگ کمتر میشه اگر هر سه تا رنگ صفر باشن پس شدتی تو هیچ رنگی وجود نداره میشه سیاه اون پیکسل و برعکس.

 

  • vahid hasani


This example demonstrates how do I add custom adapter for my listView in android.

Step 1 − Create a new project in Android Studio, go to File ⇒ New Project and fill all required details to create a new project.

Step 2 − Add the following code to res/layout/activity_main.xml.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>

Step 3 − Add the following code to src/MainActivity.java
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ListView;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
ListView listView;
ArrayList<MyData> arrayList = new ArrayList<>();
MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.listView);
arrayList.add(new MyData(1, " Mashu","987576443"));
arrayList.add(new MyData(2, " Azhar","8787576768"));
arrayList.add(new MyData(3, " Niyaz","65757657657"));
adapter = new MyAdapter(this, arrayList);
listView.setAdapter(adapter);
}
}

Step 4 − Create a java class(MyData.java) and add the following code
public class MyData {
private int serialNum;
private String name;
private String mobileNumber;
public MyData(int num, String name, String mobileNumber) {
this.serialNum = num;
this.name = name;
this.mobileNumber = mobileNumber;
}
public int getNum() {
return serialNum;
}
public void setNum(int num) {
this.serialNum = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMobileNumber() {
return mobileNumber;
}
public void setMobileNumber(String mobileNumber) {
this.mobileNumber = mobileNumber;
}
}

Step 5 − Create a java class(MyAdapter.java) and add the following code −
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import java.util.ArrayList;
public class MyAdapter extends BaseAdapter {
private Context context;
private ArrayList<MyData> arrayList;
private TextView serialNum, name, contactNum;
public MyAdapter(Context context, ArrayList<MyData> arrayList) {
this.context = context;
this.arrayList = arrayList;
}
@Override
public int getCount() {
return arrayList.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = LayoutInflater.from(context).inflate(R.layout.row, parent, false);
serialNum = convertView.findViewById(R.id.serailNumber);
name = convertView.findViewById(R.id.studentName);
contactNum = convertView.findViewById(R.id.mobileNum);
serialNum.setText(" " + arrayList.get(position).getNum());
name.setText(arrayList.get(position).getName());
contactNum.setText(arrayList.get(position).getMobileNumber());
return convertView;
}
}

  • vahid hasani

 

فرض کنید در حافظه خارجی (External Storage)، یک پوشه با نام myFolder داریم و قصد داریم که لیست فایل ها و پوشه های (Folders) موجود در آن پوشه را به صورت آرایه ای (Array) از جنس File به دست آوریم، برای این منظور، گدهای زیر را می نویسیم :

 

File root = android.os.Environment.getExternalStorageDirectory();
File dir = new File (root.getAbsolutePath() + "/myFolder");
File[] list = dir.listFiles();

خط اول کدها برای به دست آوردن آدرس مسیر حافظه خارجی (External Storage) می باشد (

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

اکنون فرض کنید بخواهیم مسیر کامل (absolute path) مربوط به اولین عنصر در آرایه (اولین فایل یا پوشه شناسایی شده) را به صورت یک رشته (String) به دست آوریم، برای این منظور، کد زیر را می نویسیم (از روش getAbsolutePath استفاده می کنیم(

 

File root = android.os.Environment.getExternalStorageDirectory();
File dir = new File (root.getAbsolutePath() + "/myFolder");
File[] list = dir.listFiles();
File file = list[0];
String str = file.getAbsolutePath();

یا فرض کنید بخواهیم تنها نام (بدون ذکر مسیر) مربوط به اولین عنصر در آرایه (اولین فایل یا پوشه شناسایی شده) را به صورت یک رشته (String) به دست آوریم، برای این منظور، کد زیر را می نویسیم (از روش getName استفاده می کنیم) :

 

File root = android.os.Environment.getExternalStorageDirectory();
File dir = new File (root.getAbsolutePath() + "/myFolder");
File[] list = dir.listFiles();
File file = list[0];
String str = file.getName();

نکته

دقت شود که در صورت کدنویسی برای فرآیندی که نیاز به دسترسی به حافظه خارجی (External Storage) دارد، باید کدهای زیر درون AndroidManifest.xml نوشته شود (برای اجازه دادن برای نوشتن در حافظه خارجی و یا خواندن از حافظه خارجی

 

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


 

  • vahid hasani

 

آیا تا کنون کاری در کامپیوتر خود انجام داده اید  که آرزو کنید ای کاش هرگز آن عمل را انجام نداده بودید؟ برای مثال ، نصب برنامه ای برای کار در اینترنت یا سعی در پیدا کردن یک کرک برای باز کردن یک بازی دانلود شده ، یا حتی بازدید از وب سایت بد و آلوده  و پس از آن کامپیوتر ویندوز شما مشکل پیدا کرده باشد؟

 

و یا زمانی که تنظیماتی  بر روی کامپیوترتان اعمال کرده اید که در حال حاضر ویندوز شما از کار افتاده باشه تو این مرحله شما چیکار می کنید ؟ شاید خیلی از شما پاسخ بدی که ویندوز جدید نصب می کنیم .اما من می گم که دست نگه دارید واسه این  مشکلات سیستم عامل راه حل داره !

 

اولین راه این است که کامپیوتر خود را ریست کنید و دکمه F8 را به طور مداوم فشار دهید تا یه منو بوت کمکی به نمایش در آید که اولین گرزینه قابل انتخابش  safe mode است اگر در همین منو جستجو کنید یه گزینه وجود داره که ویندوز را به آخرین تنظیمات خوب بر می گرداند Last know good configuration این گزینه را انتخاب کنید تا ویندوز شما به حالت قبل باز گردد .

 

این گزینه در صورتی کار می کند که ویندوز شما دارای نقطه بازیابی یا ریستور پوینت باشه که در ادامه طریقه ساختن آن را توضیح می دم به هر حال اگر با این روش مشکل برطرف شد که خوب اگه که نه دیگه باید از سیستم ریستور ویندوز استفاده کنید شاید با خودتون بگید که سیستم ریستور چیست ؟ سیستم ریستور یا به زبان انگلیسی System Restore  امکانی است که تنظیمات صحیح ویندوز را به خاطر می سپارد و آن را در محلی در دیسک سخت برای مواقع اضطراری ذخیره می کند و با بازیابی کردن این اطلاعات می توان از بروز مشکل جلوگیری کرد . برای اجرای برنامه ریستور می توانید در منوی start در قسمت Run کلمه restore را تایپ کرده و اینتر بزنید تا پنجره ای با چهار آیکن به شما نشان داده شود حال روی آیکنی که شکل یک کامپیوتر و فلش سبز روی آن است دو بار کلیک کنید تا برنامه باز بشه .راه دیگه رفتن به مسیر زیره :

 

start>all programs>Accessories>system restore>System Restore

 

البته این نکته رو بگم که برای دیدن قدرت واقعی و عملکرد صحیح system restore باید برنامه را در محیط safe mode اجرا کنید برای این منظور کامپیوتر خود را ریستارت کرده و دکمه F8 را به طور مرتب فشار دهید تا منوی کمکی بوت باز شود سپس از گرزینه های موجود گزینه Safe Mode را انتخاب کنید و سپس از یوزر های قابل استفاده از یوزی لوگین ببشید که Administrator باشه بعد این برنامه را اجرا کنید .

 

وقتی برنامه باز شد اولین گزینه سیستم ریستور یعنی RESTORE MY COMPUTER TO AN EARLIER TIME ویندوز را به حالت قبل باز گرداند و دومین گزینه یعنی Create Restore Points می توان ریستور پوینتی ایجاد کرد. برای برطرف کردن مشکل RESTORE MY COMPUTER TO AN EARLIER TIME را کلیک کنید سپس تاریخی را که در آن کامپیوتر خوب کار می کرده است را کلیک کنید NEXT را کلیک کنید . در این حالت سیستم عملیات بازیابی و بازگشت به قبل را آغاز می کند .پس از اتمام سیستم مجددا راه اندازی خواهد شد . پس از بازگشت به ویندوز پنجره ای باز می شود که با زدن OK به محیط ویندوز وارد می شوید . حالا یه پیشنهاد شما می تونید قبل از اینکه نرم افزار مشکوکی را نصب کنید که از عواقب آن خبری ندارید میتونید یک ریستور پوینت یا نقطه بازیابی بسازید تا در صورت بروز مشکل به حالت قبل از =نصب اون نرم افزار برید برای ساختن یک Restore Points به مسیر قبل رفته و این بار گزینه Create Restore Points را انتخاب کنید و با کلیک بر روی NEXT به قسمت بعد رفته و نامی را برای Restore Points جدید انتخاب کنید و حال گزینه Create را کلیک کنید پس از چند لحظه کل تنظیمات ویندوز ذخیره می شود . از این پس در صورت بروز مشکل هنگام بوت ویندوز باید کلید F8 را پایین نگاه داشت و با انتخاب گزینه Last Known Good Configouration ویندوز را به حالت قبل باز گرداند .


 

  • vahid hasani