به نام خدا
درود بر همراهان همیار اندروید
در این آموزش میخام بهتون یاد بدم که چطوری میتونید بخشی از یک
جمله را درون TextView قابل کلیک خوردن کنید
اولین قدم
درون لایوت activity مورد نظر ویوهای مورد نیاز رو اضافه میکنیم
res/layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:gravity="center"
android:orientation="vertical"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="HamyarAndroid.com"
android:textSize="30sp"
android:layout_marginBottom="20dp"
android:textColor="@color/colorPrimaryDark"/>
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:textSize="20sp"
android:textStyle="bold|italic"/>
</LinearLayout>
همانطور که در بالا میبینید از خط 18 تا 24 یک TextView ایجاد کردیم و در خط 19 به آن آیدی textView را دادیم
دومین قدم
نوشتن کدهای جاوا در کلاس مورد نظر
src/MainActivity.java
package com.hamyarandroid.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView);
String jomle = "HamyarAndroid Hamrahe hamishegi";
SpannableString spannableString = new SpannableString(jomle);
ClickableSpan kalame1 = new ClickableSpan()
{
@Override
public void onClick(View widget) {
Intent browserIntent = new Intent(Intent .ACTION_VIEW, Uri.EMPTY.parse("https://hamyarandroid.com"));
startActivity(browserIntent);
}
};
spannableString.setSpan(kalame1, 0,13, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ClickableSpan kalame2 = new ClickableSpan() {
@Override
public void onClick(View widget) {
Toast.makeText(MainActivity.this, "همیار اندروید همراه همیشگی", Toast.LENGTH_SHORT).show();
}
};
spannableString.setSpan(kalame2, 22,31, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(spannableString);
textView.setMovementMethod(LinkMovementMethod.getInstance());
}
}
خط 27
من اومدم و TextView رو کانفیگ کردم
خط 29
جمله ای که میخام بعضی کلماتش رو خاصیت کلیک خوری بدم رو نوشتم
خط 30
اومدم از خاصیت SpannableString یک new گرفتم و جمله خط 29 را که اسمشو jomle گذاشتم درونش ست کردم
خط های 32 تا 39
من اومدم متدی ایجاد کردم که اولین کلمه ای که قرار است خاصیت کلیک خوری بخورد چه
کاری را باید اجرا کند که در خط 36 و 37 با توجه به خاصیت Intent بهش گفتم که به سایت همیار اندروید برو
خط 40
تعریف کردم که اولین کلمه که خاصیت کلیک خوری میخورد از حرف چندم تا چندم جمله باشد که همونطور
که میبینید از حرف 0 تا 13 رو براش اتخاب کردم
خط های 43 تا 48
متدی ایجاد کردم که دومین کلمه رو که کلیک میخوره چه کاری باید انجام بده و در خط 46 من اومدم
و دستور Toast رو براش نوشتم یعنی با زدن کلیک روی کلمه متن "همیار اندروید همیار همیشگی" رو برامون در
پایین تصویر به نمایش در میاره
در خط 49
تعریف کردم که دومین کلمه که خاصیت کلیک خوری میخورد از حرف چندم تا چندم جمله باشد که همونطور
که میبینید از حرف 22 تا 31 رو براش اتخاب کردم
در خط 51
جمله بالا که در SpannableString خط 30 ست کردیم رو درون TextView هم ست میکنیم
قدم آخر
در آخرین مرحله ما باید دسترسی به اینترنت را در Manifest ایجاد کنیم
AndroidManifest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hamyarandroid.myapplication">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
در خط 4 کد بالا من اومدم و از طریق uses-permission دسترسی به اینترنت برنامه رو فعال کردم