keyboard_return  چسبون مقالات آموزشی آموزش گام به گام اندروید با زبان کاتلین Kotlin کار با textview و editText در کاتلین kotlin
  1. آموزش گام به گام اندروید با زبان کاتلین Kotlin
  2. کار با textview و editText در کاتلین kotlin

آموزش کار با textView در کوتلین

در جلسه گذشته با TextView آشنا شدید. TextView فقط متنی را در خروجی نمایش می ده و قابلیت ورود اطلاعات را نداره. با شی یا ابزار editText میشه داده ای رو از ورودی دریافت کرد.

در این آموزش قراره دو تا EditText داشته باشیم دو Button و یک TextView .

کار Button اولی این هست که وقتی روش کلیک کردیم متن TextView به "من کاتلین هستم!"تغییر کنه.

در این روش من با استفاده از ID ای که برای Button تعریف کردم عملیات تغییر متن رو انجام می دم(ID رو برابر با button گذاشتم):

button.setOnClickListener

روش دومی که می تونیم برای رویداد کلیک یک دکمه(Button) بنویسیم قراره دو تا عدد از ورودی گرفته و اون دو عدد رو به integer تبدیل کنیم و بعد با هم ضرب کنیم و در خروجی چاپ کنیم. دقت داشته باشید که در قسمت Design بر روی Button ضرب کلیک کنید و خصوصیت onClick رو برابر با BtnClick قرار بدید(که من کدش رو برای شما نوشتم. کافیه کپی و جایگذاری کنید).

کار ساده ایه پس کارهای پایین رو انجام بدین:

فایل Main.activity.kt رو باز کنید و کدهای زیر رو در فایل خودتون paste کنید:

package ir.chasboon.kotlinapp

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.TextView
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        button.setOnClickListener{
            val textView  = findViewById<TextView>(R.id.textView)
            textView.text="من کاتلین هستم!"
        }
    }


    fun BtnClick(v: View) {

        val textView  = findViewById<TextView>(R.id.textView)
        val x   = findViewById<TextView>(R.id.x)
        val y  = findViewById<TextView>(R.id.y)

        val res  =  x.text.toString().toInt() * y.text.toString().toInt()
        textView.text= res.toString()
    }
}

دقت کنید اگر نام package من با شما یکی نبود، نام پکیج خودتون رو وارد کنید در اولین خط برنامه.

سپس فایل activity_main.xml رو باز کنید و کدهای زیر رو در اون قرار بدید:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    tools:layout_editor_absoluteY="81dp">

    <EditText
        android:id="@+id/x"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="40dp"
        android:ems="10"
        android:hint="num1"
        android:inputType="number"
        android:text="5"
        app:layout_constraintTop_toBottomOf="@+id/textView"
        tools:layout_editor_absoluteX="72dp"
        tools:ignore="MissingConstraints" />

    <EditText
        android:id="@+id/y"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:ems="10"
        android:hint="num2"
        android:inputType="number"
        android:text="3"
        app:layout_constraintTop_toBottomOf="@+id/x"
        tools:layout_editor_absoluteX="72dp"
        tools:ignore="MissingConstraints" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="299dp"
        android:layout_height="96dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:text="hi"
        android:textAlignment="center"
        android:textSize="30sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button"
        android:layout_width="67dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:text="click"
        app:layout_constraintTop_toBottomOf="@+id/y"
        tools:layout_editor_absoluteX="147dp"
        tools:ignore="MissingConstraints" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:onClick="BtnClick"
        android:text="ضرب"
        app:layout_constraintTop_toBottomOf="@+id/button"
        tools:layout_editor_absoluteX="133dp"
        tools:ignore="MissingConstraints" />

</android.support.constraint.ConstraintLayout>

چنتا warning می بینید که چیز زیاد مهمی نیست و IDE میگه بهتره نام ابزارها رو در یک فایل string.xml تعریف کنید و برای اینکه آموزش ما ساده باشه متن ابزار ها رو در خود activity_main.xml نوشتیم.

حالا پروژه رو اجرا کنید و روی button ها یا دکمه ها کلیک کنید. مشاهده می کنید دو عدد با هم ضرب میشن و یا نام من کاتلین هستم نمایش داده میشه!

نکته: برای اینکه عمل ضرب انجام بشه باید رشته ی ورودی رو به integer تبدیل کنیم وگرنه خطا میگیریم:

x.text.toString().toInt() 

نکته بعدی این هست که پایان هر خط کد نباید سمی کالن بذارید چون کاتلین بدون ; کار می کنه!

در کد کاتلین فوق ما مقدار دو ورودی رو دریافت کریدم و درون متغیر های x , y میریزیم. سپس رشته رو به Int تبدیل کردیم و عمل ضرب رو انجام دادیم.

نتیجه عمل ضرب رو در res ریختیم. سپس مقدار res رو به رشته تبدیل کردیم و درون textView برای نمایش قرار دادیم.

همچنین می توانید ویدیوهای آموزشی کاتلین را در اینجا مشاهده کنید:

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

کار با textview و editText در کاتلین kotlin - 3.8 از 5 بر اساس 150 رای

امتیاز کاربران

کار با textview و editText در کاتلین kotlin
دیدگاه‌ها
زضا زضا 4 سال پیش
سلام اقای بابائی وقتتون بخیر خسته نباشید من الان حدود 1 ماهی هست تصمیم گرفتم کاتلین رو شروع کنم برای پیش نیاز چندین شخصی ک برنامه نویسی میکردن راهنمایی کردن ک الگوریتم رو یاد بگیرم ،منم یاد گرفتم فقط تنها مشکلی ک الان دارم واسه اینکه بتونم سیستم ب adb کانکت بشه و بعد بتونم اندروید دیوایس یا شبیه ساز ناکس رو اندروید استودیو کانکک کنم یا اینکه از طریق دستورات cmd بتونم به ریشه اندروید در شبیه ساز ناکس دسترسی داشته باشم مشکل دارم و ناکس نه در اندروید استودیو و ن در cmd کانکت نمیشه حتی پورت رو هم درست متصل کردم وقتی دستورات زیرو میزنم adb devices adb shell root:android این گزینه رو نمیاره یه اسم دیگه داره ک اصلی هیچ ربطی به شبیه ساز و یا ریشه اصلی نداره بنظرتون چطوری میتونم مشکل رو رفع کنم و در اخر ممنون که راهنمایی میکنید
آرمان بابائی آرمان بابائی 4 سال پیش
برای همچنین سوال تخصصی باید سوالتون رو در قسمت بپرس سایت بیان کنید تا دوستان ببینن و بهتون کمک کنند.
محمد محمد 5 سال پیش
سلام . من میخوام بجای اندروید استودیو با intellij. بذنامه نویسی کنم . چطور میتونم شبیه ساز اندروید رو به intellij متصل کنم و ایا باید sdk. رو جدا نصب کنم ؟
آرمان بابائی آرمان بابائی 5 سال پیش
این دو IDE فرق چندانی باهم ندارن. پیشنهاد میکنم برای سادگی و همچنین تست سریع و روان تر از شبیه ساز Genymotion استفاده کنید.
متین متین 5 سال پیش
سلام بین جاوا و کاتلین کدوم بهتره؟ من برای برنامه نویسی اندروید و ای او اس و همین ساعت و.... میخوام فقط من 17سالمه و دنبال زبانی هستم که بتونم باهاش زندگی خودمو بگذرونم و سریع یاد بگیرم
آرمان بابائی آرمان بابائی 5 سال پیش
نمیشه گفت کدوم بهتره. ولی کاتلین هم سریع تر هست و هم یادگیری آسون تری نسبت به جاوا داره و اومده تا جای جاوا رو بگیره. من در دوره آموزشی ویدیویی کاتلین مزایای کاتلین رو نام بردم که می تونید ببینید.
کامیاب کامیاب 5 سال پیش
سلام خسته نباشید...ببخشید یه سوال تقریبا بی ربط...من به مشکل خوردم...ادیت تکس(plaintext) اضافه کردم ولی وقتی داخلش مینویسم بجای اینکه بره خط بعدی از صفحه میزنه بیرون..یعنی میخام بصورت خودکار وقتی خط تموم شد بره خط بعدی ...و هرچی میگردم گزینشو پیدا نمیکنم ..میشه راهنمایی کنید ؟
آرمان بابائی آرمان بابائی 5 سال پیش
سلام. سوالی دارید در قسمت پرسش پاسخ بنویسید تا بهتر و سریعتر پاسخ داده بشه. به این شکل عمل کنید: android:maxLines="20" این خط رو اضافه کنید به editText
رامین رامین 6 سال پیش
سلام.برای شروع برنامه نویسی کدوم برنامه رو به مبتدیا پیشنهاد میکنین؟جاوا!؟ کاتلین!؟ ری اکتیو!؟ و یا...!؟؟ کدومش راحتتره یاد گرفتنش برای اونایی که هیچ اطلاعی از برنامه نویسی ندارن و میخوان از اول شروع کنن؟؟
آرمان بابائی آرمان بابائی 6 سال پیش
سلام. خیلی سوال خوب و بجایی کردین. از اونجایی که کاتلین و جاوا فقط برای برنامه نویسی اندروید ایجاد نشدن و از این زبان ها در اکثر دستگاه ها( مانند اتومبیل، تلویزیون، ماشین لباسشویی، دستگاه خودپرداز بانک و موبایل) استفاده میشه پیچیدگی های خاص خودش رو در برنامه نویسی داره تا همگی دستگاه ها رو ساپورت کنه که همینطور در یادگیری سخت تر هست. اما ری اکت نیتو چون متمرکز بر روی پلتفرمهای موبایل هست، یادگیری آسون تر و ساده تری نسبت به کاتلین و اندروید داره. همچنین مقدماتی که برای شروع به یادگیری ری اکت نیتیو دارین اکما اسکریپت 6 هست که من آموزش اکما اسکریپت 6 رو به صورت رایگان دادم و می تونید قبل از شروع ری اکت نیتیو ابتدا اکما رو یاد بگیرید و بعد وارد یادگیری ری اکت بشید.
رامین رامین 6 سال پیش
ممنون جناب بابایی عزیز.طبق فرمایش شما شروع میکنم و پیش میرم.
آرمان بابائی آرمان بابائی 6 سال پیش
امیدوارم در راهی که قدم میذارید موفق باشید و همچنین ما پشتیبان شما هستیم.
کیمیا کیمیا 6 سال پیش
خیلی عالیه آموزش هاتون . موفق باشید.
آرمان بابائی آرمان بابائی 6 سال پیش
ممنون بابت فیدبک انرژی بخش شما.
شکوفه شکوفه 6 سال پیش
private val btnId = findViewById(R.id.button) as Button فهمیدم مشکل کجاست..باید این خط کدو داخل oncreat تعریف کنیم ن خارج از اون و البته بدون private :/
آرمان بابائی آرمان بابائی 6 سال پیش
بله کاملا حق با شماست. اگه دقت کرده باشید پروژه ای که من نوشتم برای تقریبا یکسال پیش هست و کاتلین دستخوش تغییراتی شده. من دوباره پروژه رو با اندروید استودیوی جدید و همچنین کاتلین جدید تست کردم و دیدم error می گیرم. بنابراین تصمیم گرفتم این پست رو آپدیت کنم. دوباره می تونید از این روشی که آپدیت شده استفاده کنید. ممنون از پیگیری شما دوست عزیز.
شکوفه شکوفه 6 سال پیش
Unable to instantiate activity ComponentInfo در مورد اینم سرچ کردم یعنی تنها خطی بود که تو logcat میشد چیزی ازش فهمید.. ولی به نتیجه نرسیدم گفته بودن داخل منیفست اکتیویتی رو رجیستر نکردی که رفتم دیدم انجام دادم این کارو
شکوفه شکوفه 6 سال پیش
val res = x.text.toString().toInt() + y.text.toString().toInt() سلام ...بابت اموزشتون ممنون، یه مشکلی داشتم، تو خط بالا زیر textخط میکشه و alt+enter هم که میزنم فایده ای نداره...
آرمان بابائی آرمان بابائی 6 سال پیش
به logcat در اندروید استویو برید و یه بار پروژه رو run کنید و بعد error رو بنوسید اینجا تا بررسی کنیم
شکوفه شکوفه 6 سال پیش
همینطور که میدونید تو محیط اندروید استدیو خطا رو دقیقا نمیگه چیه!! فقط میره رو خط کدی که ارور بهش مربوط میشه، میره رو خط ...Private val btnId=findView جایی که متغیر باتن رو تعریف کردیم
آرمان بابائی آرمان بابائی 6 سال پیش
گفتم که باید به logcat برید. اونجا خطا رو دقیقا میگه چیه.
شکوفه شکوفه 6 سال پیش
به logcat رفتم دیگه!! ن دقیقا نمیگه چیه!!! اگه میگفت ک خیلی خوب بود، ایمیلتونو لطف میکنید تا عکس بفرسم?
شکوفه شکوفه 6 سال پیش
خطی که ارور داخل logcat هست اینه که من چیزی نمیفمم ازش!! at com.example.shokoufe.kotlinproject.MainActivity.<init>(MainActivity.kt:12)
آرمان بابائی آرمان بابائی 6 سال پیش
شماره و ایمیل بنده در قسمت تماس با ما موجوده
شکوفه شکوفه 6 سال پیش
سلام ، ممنون از توضیحاتتون... این برنامه با این کدا مشکل داره .. شما توی ایکس ام ال ، ادیت تکست تعریف کردید ولی برا کدای جاوا تکست ویو
آرمان بابائی آرمان بابائی 6 سال پیش
دوست عزیز شما با دقت متن رو نخوندید.بنده دوتا editText گذاشتم و یک textView .من برنامه رو قبل از نوشتن یکبار اجرا میکنم و بعد در اختیار شما میذارم.
شکوفه شکوفه 6 سال پیش
سلام صبحتون بخیروخوشی...من تازه کوتلین رو با اموزش های شما شروع کردم، قبلا اندرویدو با جاوا کار کردم..برا همین به خودم شک کردم و کدای شما رو عینا کپی پست کردم ..باز هم کرش میکنه، بازم بررسی می کنم..ممنوون
آرمان بابائی آرمان بابائی 6 سال پیش
با سلام. خوشحالم که آموزشهای کاتلین رو با ما شروع کردید. یه نگاهی به آموزشهای ویدیویی من بندازین کمکتون می کنه.
sajad sajad 6 سال پیش
سلام سایتتون فوق العاده است چرا بخش دیدگاه ها نظرات جدید پایین تر هستن معمولا نظرات جدید بالاتر هستن
آرمان بابائی آرمان بابائی 6 سال پیش
ممنون از شما دوست عزیز
سید مهدی سید مهدی 6 سال پیش
درودو خدا قوت سپاس فراوان برای تلاش و لطفتون و آموزش های ساده و روانتون. همواره شاد و پیروز در پناه حق
آرمان بابائی آرمان بابائی 6 سال پیش
ممنون از شما دوست عزیز
نسیم نسیم 6 سال پیش
ممنون میشم ویدئو هم بزارید
آرمان بابائی آرمان بابائی 6 سال پیش
حتما دوست عزیز
رسول رسول 6 سال پیش
فیلمشو ک بززززارین عااااااالی میشه خیلی ممنون کالتین خخخخیلی از جاوا راحتره منتظر اموزش های بعدی البته از نوع فیلمش هسم ممنون
alireza alireza 6 سال پیش
عالیه ولی خیلی کم کم اموزش ها اپدیت میشود سریعتر باشید عشقید
علی علی 7 سال پیش
ادامه نداره آموزش خوبتون
آرمان بابائی آرمان بابائی 7 سال پیش
درود. با تشکر از شما.قطعا این آموزش ادامه داره و بهترین مرجع کاتلین به زبان پارسی خواهد بود.
سلام  سلام 7 سال پیش
آقا دستت درد نکنه خیلی عالیه
آرمان بابائی آرمان بابائی 7 سال پیش
خوشحالیم که مورد پسند قرار گرفته.

2024 © Copyright کليه حقوق مادی و معنوی براي چسبون محفوظ است و هرگونه کپی برداری پیگرد قانونی دارد.