سایر مقالات این دسته
تاریخچه و خصوصیات اندرویداجزای تشکیل دهنده سیستم عامل اندرویدآشنایی با API های اندرویدایجاد،ساخت و اجرای اولین برنامه اندرویدیکار با دکمه ها در اندرویدکار با تکست باکس ها در اندرویدکار با تکست ویو در اندرویدکار با گرید ویو در اندرویدکار با وب ویو در اندرویدکار با اسکرول ویو در اندرویدکار با اسکرول ویو افقیکار با الرت دیالوگ (AlertDialog)در اندرویدکار با ایمیج باتن(Image Button) در اندرویدکار با توگل باتنکار با چک باکس (Checkbox) در اندرویدکار با الرت دیالوگ (AlertDialog)در اندروید قسمت دوکار با ریتینگ بار(Rating bar) در اندرویدرفتن از یک اکتویتی به اکتویتی دیگرکار با نوتیفیکیشن ها (Notifications )در اندرویدکار با صوت در برنامه نویسی اندرویدکار با ویبره(Vibrator) در اندرویدکار با دوربین در اندرویدکار با دوربین در اندرویدکار با ویدیو ویو (VideoView)در اندرویدکار با شبکه وای فای (Wifi)در اندرویدکار با لیست ویو (ListView) در اندرویدکار با سیک بار (SeekBar) در اندرویدکار با دکمه بازگشت در اندرویدکار با AutoCompleteTextView در اندرویدتغییر فونت در اندرویدکار با لایه TableLayout در اندرویدکار با لیست کشویی (Spinner) در اندرویدکار با CalendarView در اندرویدساخت شمارنده در اندرویدکار با title bar در اندرویدکار با منو (Menu)در اندرویدکار با لیست ویو (Listview) قسمت دومطراحی رابط کاربری در اندروید قسمت اولطراحی رابط کاربری در اندروید قسمت دوم(طراحی گرد)کار با استایل در اندرویدکار با لایه AbsoluteLayout در اندرویدطراحی رابط کاربری در اندروید کار با gradientکار با کلیپ بورد(ClipBoard)در اندروید کار با مولتی تاچ(Multitouch ) در اندروید+سورس کدکار با OnLongClick در اندرویدکار با منوی زمینه (ContextMenu ) در اندرویدکار با حرکات (Gesture) در اندرویدکار با (AudioCapture) در اندروید+سورس کدکار با موتور Speech در اندروید + سورسکار با PhoneCall در اندرویدساخت لیست ویو سفارشی در اندروید+سورسساخت Toastسفارشی در اندرویدانتقال برنامه به حافظه sdکار با TextWatcher در اندروید+سورستغییر رنگ محیط Eclipse طراحی رابط کاربری در اندروید کار با Canvasساخت اکشن بار سفارشی در اندروید+سورسساخت الرت دیالوگ سفارشی در اندرویدساخت برنامه نمایش مقدار شارژ باتری در اندرویدایجاد افکت رنگی بروی تصاویر در اندروید+سورسساخت آپشن منوی سفارشی در اندروید+سورسساخت دکمه سه بعدی با Selectorسخنان بزرگان برنامه نويسيوارد كردن پروژه در محيط ايكليپساضافه کردن switch,case به لیست ویوبارش برف بروی تصویر + سورسکار با فیلتر hue رنگی کردن تصویر انتخاب و پخش فایل صوتی از حافظه گوشی+سورساضافه کردن چک باکس به لیست ویوکار با ShelfView یا نمایش کتابخانه ای + سورسکار با TabHost،اضافه کردن تب به برنامه های اندرویدآموزش کامل ساخت اکشن بار سفارشی+سورسساخت برنامه های واکنش گرا(ریسپانسیو) در اندرویدقسمت دوم صفحات 7 اینچ به بالااضافه کردن انیمیشن به دکمه+سورسکار با View Switcher در اندروید + سورسکار با فیلتر Blur Mask + سورسدانلود پک کامل آیکون های طراحی اندرویدکار با sharedPreferences در اندروید+سورسآموزش کار با proguard،محافظت از برنامه اندرویدپخش فایل صوتی (MP3) از ادرس اینترنتی+سورسپخش ویدیو از آدرس اینترنتی(URL) در اندروید+سورسگوشی های و تبلت های مطرح تا چینی به ساده ترین روشپاسخ به رویداد های WebVeiw دسترسی به وب ویو با استفاده از جاوااسکریپتساخت ExpandableListView به ساده ترین شکل+سورسکار با WIFI اکسس+سورسساخت تقویم هجری برای اندروید+سورسapp rateدانلود و نمایش تصویر در ListView+سورسدانلود و نمایش فایل متنی+سورسکار با کلاس های پایه اکتیویتیآینه کردن تصویر+سورسافزودن آیتم منو سفارشی بهActionBar+سورسارسال اطلاعات از دیتابیس به GridView + سورسدسترسی به Api هایREST قسمت اولتغییر فونت لیست ویوفعال سازی و معرفی بخش های Android developer options بخش اول کار با JSON در اندرویدآموزش ساده نصب شبیه ساز اندروید Genymotion

نصب nodejs و اولین برنامه
1396/05/21

Node.js چیست و چرا؟
1396/05/18

ساختارهای شرطی در ++C
1396/03/19

کار با تب منو (Tab Menu) در زامارین
1395/12/18

حلقه های تکرار در ++C
1395/11/20

کار با TabHost،اضافه کردن تب به برنامه های اندروید


رضا نقی لو 1394/05/27

به نام خدا،در این جلسه می خواهیم با TabHost در برنامه نویسی اندروید آشنا بشیم.با استفاده از این قابلیت  می تونیم در داخل یک اکتیویتی از چندین تب استفاده کنیم و داخل هر تب کارهای مختلفی رو انجام بدیم.کار کردن با تب هاست خیلی ساده است و خیلی هم کاربردی برای آسانی کار با برنامه ها.

 

  

 

برای شروع یک پروژه جدید ایجاد می کنیم  و اسمش رو  TabHost  قرارا میدیم. در داخل لایه برنامه از یک لایه مطلق یا   Absolute  برای چیدمان تب هامون استفاده کرده ایم.در داخل این لایه هم از یک لایه  LinearLayout برای دربرگرفتن محتوای تب ها و  اطلاعاتی که میخواهیم در هنگام باز شدن تب مدنظرمون نمایش داده بشه  استفاده میکنم.(کدهای کاملا activity_main.xml).

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<AbsoluteLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.78" >

<TabHost
android:id="@+id/tabHost"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_x="0dp"
android:layout_y="0dp" >

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</TabWidget>

<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<LinearLayout
android:id="@+id/tab1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="HOME" >

<TextView
android:id="@+id/textView1"
android:layout_width="204dp"
android:layout_height="match_parent"
android:paddingLeft="10dp"
android:text="Appinapps.com"/>

</LinearLayout>


<LinearLayout
android:id="@+id/tab2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="HOME" >

<TextView
android:id="@+id/textView2"
android:layout_width="204dp"
android:layout_height="match_parent"
android:paddingLeft="10dp"
android:text="Google.com"/>

</LinearLayout>

<LinearLayout
android:id="@+id/tab3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="HOME" >

<TextView
android:id="@+id/textView3"
android:layout_width="204dp"
android:layout_height="match_parent"
android:paddingLeft="10dp"
android:text="Android.com"/>

</LinearLayout>

</FrameLayout>
</LinearLayout>
</TabHost>
</AbsoluteLayout>

</RelativeLayout>

بعد از تکمیل لایه برنامه میریم سراغ کلاس جاوا و فایل MainActivity.java.در داخل این کلاس ابتدا TabHost رو معرفی می کنیم،سپس با استفاده از دستور  TabSpec شروع میکنم به ایجاد تب ها و نمایش محتوای انها. در کدهای برنامه می بینید  که از یک دستور setIndicator استفاده شده،این دستور لایه ای رو که در activity_main.xml نوشتیم رو فرواخوانی میکنه و محتویاتش رو نمایش میده.(کدهای کاملا کلاس MainActivity.java).

 package com.appinapps.tabhost;
/*
* Appinapps.com
* آموزش برنامه نویسی اندروید + سورس
*/
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;

public class MainActivity extends Activity {

TabHost tabHost;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


//معرفی تب هاست 
tabHost=(TabHost)findViewById(R.id.tabHost);
tabHost.setup();

//ایجاد تب شماره یک 
TabSpec spec1=tabHost.newTabSpec("TAB 1");
//دریافت لایه تب
spec1.setContent(R.id.tab1);
//نام تب
spec1.setIndicator("Appinapps");


//ایجاد تب شماره دو
TabSpec spec2=tabHost.newTabSpec("TAB 2");
spec2.setIndicator("Google");
spec2.setContent(R.id.tab2);


//ایجاد تب شماره سه
TabSpec spec3=tabHost.newTabSpec("TAB 3");
spec3.setContent(R.id.tab3);
spec3.setIndicator("Android");

//افزودن تب ها به تب هاست جهت نمایش
tabHost.addTab(spec1);
tabHost.addTab(spec2);
tabHost.addTab(spec3);


}

سورس کامل آموزش در فایل ضمیمه قرار گرفت...موفق باشید.

فایلهای ضمیمه
توجه! برای مشاهده فایلهای ضمیمه با ید وارد سایت شوید
درباره نویسنده
admin2
رضا نقی لو
androiddev60@gmail.com
نظرات شما
نظر جدید
    User name
    farhad_1793

    تو این رو تب کلیک کنی باز میشه

    من میخوام با کشیدن به سمت راست وچپ صفحه تب عوض شه چجوری میشه اینکارو کرد؟؟

    1395/05/11 3:28 PM
    User name
    admin2

    سلام در حال آماده کردن آموزش منظر شما هستیم

    1395/05/12 11:12 AM

    User name
    farhad_1793

    تکست سایز tab ها رو چطور میشه تغییر داد

    1395/05/25 7:22 PM

    User name
    farhad_1793

    سلام این کدشه

     

    public class Estelahat14 extends AppCompatActivity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_estelahat14);
        }
        float x1, x2;
        float y1, y2;
        public boolean onTouchEvent(MotionEvent touchevent) {
            switch (touchevent.getAction()) {
                case MotionEvent.ACTION_DOWN:{
                    x1 = touchevent.getX();     y1 = touchevent.getY();         break; }
                case MotionEvent.ACTION_UP:{
                    x2 = touchevent.getX();     y2 = touchevent.getY();
                    if (x1 < x2) {  //راست به چپ )); }
                    if (x1 > x2) {  //چپ به راست )); }
                    break;
                }
            }
            return false;

        }
    }

    1395/05/26 10:44 AM