728x90
MovementMethod 는 기본적으로 텍스트 뷰 내에서 특정 동작을 처리할 수 있도록 하는 인터페이스입니다. 특히, 링크 처리, 스크롤, 또는 특정 텍스트 부분을 클릭할 때 수행해야 하는 작업을 정의할 수 있습니다.
- 하이퍼링크: 이메일 주소, 웹 사이트 URL, 전화번호 등을 텍스트로 표시하고, 이를 클릭했을 때 해당 앱이나 웹 페이지를 열 수 있습니다. 예를 들어, 고객 지원 이메일을 클릭하면 이메일 앱이 열리게 할 수 있습니다.
- 앱 내 내비게이션: FAQ, 사용자 가이드, 개인정보 처리 방침 등의 앱 내 링크를 통해 사용자가 앱 내에서 특정 화면으로 쉽게 이동할 수 있게 합니다.
- 인터렉티브 메시지: 채팅 앱이나 메시지 앱에서 특정 키워드에 반응하여 바로 답변을 제안하거나 관련 정보를 보여줄 수 있습니다.
- 양식 동의: 이용 약관이나 개인정보 처리 방침에 대한 동의를 받는 페이지에서 "여기를 클릭"과 같은 텍스트를 설정하여, 사용자가 이를 클릭해 약관을 읽고 동의할 수 있게 합니다.
정리를 하면 MovementMethod는 Android 앱에서 텍스트 기반의 UI를 좀 더 풍부하게 만들고, 사용자와의 상호작용을 강화하는 데 유용한 도구입니다. 사용자의 앱 경험을 향상시키고, 다양한 기능을 간편하게 구현할 수 있습니다.
MainActivity
import android.os.Bundle;
import android.text.Spannable;
import android.text.SpannableString;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = findViewById(R.id.textView);
// 클릭 가능한 텍스트 설정
String text = "첫 번째 텍스트를 클릭하면 첫 번째 메시지가, 두 번째 텍스트를 클릭하면 두 번째 메시지가 출력됩니다!";
SpannableString spannableString = new SpannableString(text);
// 첫 번째 클릭 가능한 부분 설정
ClickableSpan firstClickableSpan = new ClickableSpan() {
@Override
public void onClick(View widget) {
// 첫 번째 클릭 이벤트 처리
Toast.makeText(MainActivity.this, "첫 번째 메시지가 출력되었습니다!", Toast.LENGTH_SHORT).show();
}
};
// 두 번째 클릭 가능한 부분 설정
ClickableSpan secondClickableSpan = new ClickableSpan() {
@Override
public void onClick(View widget) {
// 두 번째 클릭 이벤트 처리
Toast.makeText(MainActivity.this, "두 번째 메시지가 출력되었습니다!", Toast.LENGTH_SHORT).show();
}
};
// "첫 번째 텍스트" 부분에 클릭 가능한 Span 설정
spannableString.setSpan(firstClickableSpan, 0, 8, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
// "두 번째 텍스트" 부분에 클릭 가능한 Span 설정
spannableString.setSpan(secondClickableSpan, 26, 34, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(spannableString);
// TextView에 링크를 활성화하기 위해 MovementMethod 설정
textView.setMovementMethod(LinkMovementMethod.getInstance());
}
}
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="첫 번째 텍스트를 클릭하면 첫 번째 메시지가, 두 번째 텍스트를 클릭하면 두 번째 메시지가 출력됩니다!"
android:textColor="@android:color/black"
android:autoLink="none"/>
</LinearLayout>
시연 영상
'안드로이드 자바' 카테고리의 다른 글
[JAVA][Android] PopupWindow 표시하기 (0) | 2024.10.07 |
---|---|
[JAVA][Android] checkBox 체크박스 사용하기 (0) | 2024.10.05 |
[JAVA][Android]Html.ImageGetter 을 사용하여 이미지 비동기로 보이게 하기 (0) | 2024.09.29 |
[Java][Android] Switch를 이용한 On/Off 기능 구현하기 (0) | 2024.09.24 |
[Java][Android] RatingBar을 사용해서 별점만들기 (0) | 2024.09.20 |