TextView در اندروید

منتشرشده توسط حامد قنبری در تاریخ

 

در اندرویدTextView ویوهایی هستند که امکان تعامل  یک طرفه برنامه را با کاربر فراهم می سازد و بیشتر به منظور نشان دادن اطلاعات متنی همچون نتیجه پردازش ها ، راهنمایی کاربران  تعبیه شده است. در Android، ،TextView یک ویجت خروجی استاندارد در برنامه های آندروید محسوب می شود که  از  جهات بسیاری مشابه EditText می باشد با این تفاوت که که خود را غیرقابل ویرایش می کند. ساده ترین مثال TextView  لیبل های فرم ورود یا ورود به سیستم است که بصورت متنی در صفحه نمایش قابل رویت است.دقت کنید که این ویو نیز از جمله پرکاربردترین عناصر مختلف اندروید دانست که یک برنامه نویس اندروید قبل هر چیزی می بایست  با نحوه برنامه نویسی آن آشنایی لازم را داشته باشد. از این رو ضروری است در ارتباط با این موضوع نیز حساسیت بیشتری از خود نشان دهید.

نحوه اضافه کردن TextViewبه پروژه:

بطور کلی دو روش کلی  برای ایجاد  TextView در برنامه اندروید وجود دارد. راه حل اول همانطور که در مباحث پیشین در موضوع EditText  مطرح شد افزودن از طریق فایل XML  که به شکل زیر می باشد.

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

 

در این روش در فایل XML  همانند فایل activity_main.xml و در  داخل لایوت های اصلی یا فرعی ،  تگ شروع شونده TextView>  را تایپ کرده و سپس سایر ویژگی های مربوط به آن مانند متن ویو ، رنگ متن ، اندازه متن و … را به آن  اضافه می کنیم و سپس با تگ پایانی /> آن را می بندیم. به منظور درک بیشتر موضوع به کدهای زیر دقت کنید:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">



    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tv1"
        android:textSize="20sp"
        android:textColor="@color/colorAccent"
        android:layout_marginTop="30sp"
        android:gravity="center" موقعیت قرار گیری متن در داخل ویو
/>


</RelativeLayout >

 

همانطور که در کد هایXML فوق می بینید TextView در داخل لایوت اصلی ما یعنی  RelativeLayout قرار دارد  و دارای ویژگی های متعددی است که در برنامه به هنگام اجرای آن بر روی آن اعمال می شود.

در گام نخست آنچه برای مهم و ضروری بنظر می رسد نحوه فراخوانی این عنصر ایجاد شده به منظور اعمال برخی عملیات ها در کلاس مرتبط با آن است. به همین منظور تمامی ویوهای موجود در فایل XML  را از طریق ایدی یا شناسه مرتبط با آن ویو در کلاس فراخوانی می کنیم. که در مثال ذکر شده ایدی TextView به شکل زیر تعریف شده است:

android:id="@+id/tv1"

برای فراخوانی TextView و سایر ویوها برای منظور برنامه نویسی در کلاس از متد

findViewById(R.id.yourid)

استفاده می کنیم.

به همین منظور لازم است در کلاس ها  اولاً فایل XML مرتبط با کلاس مشخص شود. یعنی ما باید مشخص کنیم که قصد فراخوانی چه چیزی را از کدام فایل XMl  داریم که در کد زیر در دستور مشخص شده با رنگ قرمز مشخص شده است و سپس  آن ویو یا عنصر مورد نظر در فایل مربوطه را بر اساس شناسه آن فراخوانی می کنیم  و آن در متغیری از نوع خود ذخیره می کنیم.

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.Button;

import android.widget.TextView;



public class MainActivity extends AppCompatActivity {

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

        TextView tv = (TextView)findViewById(R.id.ed1);
      

    



    }
}

 

تا اینجا ما توانستیم TextView  مورد نظر خود را در فایل  Xml ایجاد کرده و آن را به کلاس موردنظر خودمان شناسایی کنیم. اکنون لازم است تعیین کنیم که چگونه می توانیم متن مورد نظر را به کاربر نشان دهیم. بدین منظور لازم است از ابتدا متن مورد نظر را به نوع String  تبدیل کنیم و سپس با استفاده از متد( setText(yourtext متن مورد نظر را در ویو مذکور نشان  دهیم.

به مثال زیر توجه کنید:

 

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        final TextView tv = (TextView)findViewById(R.id.ed1);
         tv.setText("متن مورد نظر شما");





    }
}

به منظور درک بهتر توضیحات فوق نظر شما را به مثالی جلب می کنیم. در این مثال قرار است کاربر متن مورد نظر خود را در EditText تایپ کرده و با کلیک کردن بر روی Button   برنامه متن مورد نظر شما از EditText را گرفته و آن را TextView نمایش دهد.

اگر در داخل برنامه اکلیپس یا اندروید استودیو قرار دارید پروژه جدیدی را  ایجاد کنید

اکلیپس :File ⇒ New Android ⇒ Application Project

اندروید استودیو :File ⇒ New  ⇒ New Project

اما اگر هنوز برنامه خود را باز نکرده اید یکی از برنامه های فوق را باز نموده و بعد از تعیین مشخصات(نامگذاری) ، تعیین حداقل sdk  و نوع اکتیویتی (blank  یا Empty) ، نام اکتیویتی ابتدایی و اصلی خود  را همان MainActivity قرار دهید.در مسیر res ⇒layout لایه متناظر اکتیوتی اصلی یعنی activity_main را پیدا نمود و کدهای مندرج و پیش فرض آن را پاک کرده و کدهای xml  زیر را به آن اضافه کنید:

 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="60sp"
        android:id="@+id/tv1"
        android:textSize="20sp"
        android:textColor="@color/colorAccent"
        android:background="#bfbfbf"
        android:gravity="center"
        android:layout_alignParentTop="true" />
<EditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="متن مورد نظر خود را اینجا بنویسید"
    android:id="@+id/ed1"
    android:layout_below="@+id/tv1"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginTop="56dp" />

 
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:id="@+id/button1"
        android:text="Click Me"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true" />


</RelativeLayout >

سپس به سراغ کلاس MainActivity  می رویم و کدهای زیر را در آن قرار می دهیم.

 

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;


public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final EditText YourText = (EditText)findViewById(R.id.ed1)
        final TextView Display = (TextView)findViewById(R.id.ed1);
        Button   captureText = (Button)findViewById(R.id.button1);

        captureText.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String input =   YourText.getText().toString();
                Display.setText(input);
                Toast.makeText(getApplication(), input, Toast.LENGTH_LONG).show();
            }
        });



    }
}

حال می توانید برنامه خود را اجرا کرده و نتیجه کار خود را ببینید.

 

موفق و پیروز باشید.

 


0 دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *