کار با textviwe
05
ژانویه

آموزش کار با تکست ویو (textview) در اندروید استودیو

یکی از پرکاربردترین ویجت ها در اندروید استودیو تکست ویو (textview) نام دارد . تکست ویو یک نمایش دهنده متن است و بیشتر برای نشان دادن اطلاعات و راهنمای کاربر تعبیه شده .  این ویجت بسیار شبیه edittext عمل می کند با این تفاوت که در edittext امکان ورود متن توسط کاربر وجود دارد ولی تکست ویو صرفاً جهت نمایش متن یا لینک به کار می رود. از کاربردهای آن می توان به لیبل در فرم های ثبت سفارش اشاره کرد .  معمولاً اولین ویجتی که  برنامه نویس در اندروید استودیو شروع به یادگیری آن می کند تکست ویو است . زیرا ساده ترین نوع ویجت ها به حساب می آید . جهت آموزش کار با تکست ویو در اندروید استودیو با ما همراه باشید .

خصوصیات textview :

در این بخش می خواهیم خصوصیات و ویژگی های تکست ویو textview را به شما معرفی کنیم و با مثال های عملی ویژگی ها را به شما معرفی کنیم .

id  : یک شناسه یکتا به آبجکت می دهد و آن را در منابع اضافه می کند . به مثال زیر دقت کنید .

<TextView
    android:id="@+id/txtName"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

در این مثال در خط دو ما به ویجت خود یک نام  txtName به عنوان آی دی اختصاص دادیم. به این طریق در فایل جاوا به آن دسترسی خواهیم داشت .

 layout_width : عرض ویو را تعیین می کند و می تواند دو مقدار match_parent  و wrap_contetnt و یا مقدار مشخصی بگیرد .

layout_height : ارتفاع ویو را تعیین می کند و می تواند دو مقدار match_parent  و wrap_contetnt و یا مقدار مشخصی بگیرد .

Textsize : برای تغییر اندازه متن استفاده می شود .

Textsize : برای تغییر اندازه متن استفاده می شود.

Text : متن دلخواهی که می خواهیم نمایش داده شود را در این قسمت وارد می کنیم.

gravity : یک ویژگی اختیاری است که برای کنترل ترازبندی متن مانند چپ ، راست ، مرکز ، بالا ، پایین ،   center_vertical (مرکز راستای عمودی)  ،   center_horizontal(مرکز راستای افقی) و غیره استفاده می شود.

به عنوان مثال در کد زیر  center_verticalرا برای متن یک TextView تنظیم می کنیم.

<TextView
    android:id="@+id/txtName"
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:gravity="center_vertical"
    android:textSize="20sp"
    android:text="Welcome to daneshgostarprj.ir"/>

کار با تکست ویو

Textcolor : از ویژگی textColor برای تنظیم رنگ متن استفاده می شود. برای مقدار دهی به این اتریبیوت دو راه وجود دارد.

روش اول: به مسیر زیر بروید     

app>res>values>colors.xml

در اینجا چند رنگ تعریف شده به صورت پیش فرض وجود دارد. مانند نمونه های موجود رنگ جدیدی ایجاد کنید مانند کد زیر :

<color name="red">#F44336</color>

سپس به فایل xml برمی گردیم و در خصوصیت textcolor با فراخوانی فایل color رنگ مورد نظر را انتخاب میکنیم .

<TextView
    android:id="@+id/txtName"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:textSize="25sp"
    android:textColor="@color/red"
    android:text="Welcome to daneshgostarprj.ir"/>

textviwe

روش دوم:  کد رنگی مد نظر خود را وارد می کنیم .

android:textColor="#F44336"

backgroung : به وسیاه این اتریبیوت می توان رنگ پس زمینه را تغییر داد.

Textstyle: برای تغیییر استایل متن استفاده می شود و دارای سه حالت bold، italic  و normal می باشد.

Hint : زمانی که text  خالی باشد مقدار این خصوصیت نمایش داده می شود.

نحوه قرار دادن متن در تکست ویو:

1-قرار دادن متن در تکست ویو از طریق فایل string :

در اندروید استودیو به مسیر res/values/string  می رویم و مانند کد زیر یک رشته با نام txtName  تعریف می کنیم و محتوای  Welcome to daneshgostarprj.ir را اضافه می کنیم .

<string name="txtName">Welcome to daneshgostarprj.ir</string>

حالا باید این رشته را در مکان مورد نظر فراخوانی کنیم. به فایل xml خود بر می گردیم و در خصوصیت text آبجکت خود فراخوانی را با @string/ شروع کرده و بعد از آن نام رشته را می نویسیم مانند کد زیر

<TextView
    android:layout_width="match_parent"
    android:layout_height="200dp"
    android:background="@color/purple_200"
    android:gravity="center"
    android:textSize="25sp"
    android:textStyle="bold|italic"
    android:text="@string/txtName" />

کار با textviwe

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

2- قرار دادن متن در تکست ویو در فایل جاوا

برای اینکار در ابتدا باید یک شناسه یکتا با کمک اتریبیوت آی دی در فایل xml برای ویجت خود ایجاد کنیم تا به راحتی در فایل جاوا به آن دسترسی داشته باشیم. سپس در فایل جاوا مانند عکس زیر عمل می کنیم .


package com.example.daneshgostar;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView txt = findViewById(R.id.txtName);
        txt.setText("Welcome to daneshgostarprj.ir");
        txt.setText(R.string. namestring);

    }
}

برای استفاده از تکست ویویی که در فایل xml تعریف کردیم در ابتدا باید به کمک متد   findviewbyid()بین ویجت مورد نظر و فایل جاوا ارتباط برقرار کنیم. ورودی تابع را )آی دی ویجت.id.(R را قرار میدهیم. به این معنی که در کلاس R ، آی دی که نام آن txtName است را پیدا کن. حالا باید ویجت  را به کمک مساوی به متغیری که از جنس خودش است بریزیم.

تا اینجای کار توانستیم به ویجت خود دسترسی پیدا کنیم. حالا نوبت آن رسیده که متن خود را با کمک متد settext  قرار دهیم.

در خط 10  متن به صورت مستقیم به ورودی تابع settext داده شده است.

در خط 11 در ورودی تابع settext از منابع string استفاده شده. به این صورت که در ابتدا باید در فایل string رشته ی خود را با نام مشخص ایجاد کنید (در مثال بالا namestring نام رشته است)

3-قرار دادن متن در تکست ویو از طریق xml:

در این روش ما متن مورد نظر خود را به طور مستقیم در ویجت می نویسیم. آسان ترین راه قرار دادن متن در تکست ویو استفاده از همین شیوه است. ولی معمولا توصیه می شود که متن خود را در فایل string قرار دهید و در خصوصیت text رشته خود را فراخوانی کنید.