텍스트 보기 텍스트를 클릭하거나 탭하는 방법
이것이 매우 쉽다는 것을 알지만(doh...) Android 앱에서 텍스트 보기 줄을 누르거나 클릭할 때 방법을 찾고 있습니다.
버튼 청취자와 익명 방식 청취자 통화에 대해 계속 생각하고 있지만, TextView에는 적용되지 않는 것 같습니다.
텍스트 보기에서 텍스트를 클릭하거나 탭하는 방법을 보여주는 코드 조각을 가리켜 줄 수 있습니까?
다음 특성을 사용하여 xml로 클릭 핸들러를 설정할 수 있습니다.
android:onClick="onClick"
android:clickable="true"
클릭 가능한 속성이 없으면 클릭 핸들러가 호출되지 않습니다.
main.xml
...
<TextView
android:id="@+id/click"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Click Me"
android:textSize="55sp"
android:onClick="onClick"
android:clickable="true"/>
...
내 활동.java
public class MyActivity extends Activity {
public void onClick(View v) {
...
}
}
이것은 당신이 찾고 있는 것이 아닐 수도 있지만, 이것이 제가 하고 있는 일에 효과가 있었던 것입니다.이 모든 것은 나의 뒤에 있습니다.onCreate
:
boilingpointK = (TextView) findViewById(R.id.boilingpointK);
boilingpointK.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if ("Boiling Point K".equals(boilingpointK.getText().toString()))
boilingpointK.setText("2792");
else if ("2792".equals(boilingpointK.getText().toString()))
boilingpointK.setText("Boiling Point K");
}
});
알겠습니다. 저는 제 질문에 답했습니다(하지만 그게 최선의 방법인가요?)
다음은 텍스트 보기에서 일부 텍스트를 클릭하거나 누를 때 메서드를 실행하는 방법입니다.
package com.textviewy;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
public class TextyView extends Activity implements OnClickListener {
TextView t ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
t = (TextView)findViewById(R.id.TextView01);
t.setOnClickListener(this);
}
public void onClick(View arg0) {
t.setText("My text on click");
}
}
main.xml은 다음과 같습니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout android:id="@+id/LinearLayout01" android:layout_width="wrap_content" android:layout_height="wrap_content"></LinearLayout>
<ListView android:id="@+id/ListView01" android:layout_width="wrap_content" android:layout_height="wrap_content"></ListView>
<LinearLayout android:id="@+id/LinearLayout02" android:layout_width="wrap_content" android:layout_height="wrap_content"></LinearLayout>
<TextView android:text="This is my first text"
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:textStyle="bold"
android:textSize="28dip"
android:editable = "true"
android:clickable="true"
android:layout_height="wrap_content">
</TextView>
</LinearLayout>
레이아웃 및 텍스트 보기를 호출하는 활동 내부에서 이 클릭 수신기는 작동합니다.
setContentView(R.layout.your_layout);
TextView tvGmail = (TextView) findViewById(R.id.tvGmail);
String TAG = "yourLogCatTag";
tvGmail.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View viewIn) {
try {
Log.d(TAG,"GMAIL account selected");
} catch (Exception except) {
Log.e(TAG,"Ooops GMAIL account selection problem "+except.getMessage());
}
}
});
텍스트 보기는 다음과 같이 선언됩니다(기본 마법사).
<TextView
android:id="@+id/tvGmail"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/menu_id_google"
android:textSize="30sp" />
및 strings.xml 파일에서
<string name="menu_id_google">Google ID (Gmail)</string>
수신기를 텍스트 보기로 설정하여 문제를 해결할 수 있지만 그렇지 않은 것이 좋습니다.플랫 버튼은 버튼의 하위 클래스이고 TextView에는 없는 많은 속성을 제공하므로 사용해야 합니다.
플랫 단추를 사용하려면 추가style="?android:attr/borderlessButtonStyle"
속성 -
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="DONE"
style="?android:attr/borderlessButtonStyle"/>
텍스트 보기에서
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Text"
android:onClick="onClick"
android:clickable="true"
또한 View를 구현해야 합니다.OnClickListener 및 OnClick 메서드에서 의도를 사용할 수 있습니다.
Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
intent.setData(Uri.parse("https://youraddress.com"));
startActivity(intent);
저는 이 솔루션이 잘 작동하는지 테스트했습니다.
전체가 아닌 텍스트의 일부를 클릭하는 방법TextView
), 를 사용할 수 있습니다.Html
또는Linkify
(둘 다 앱에서 콜백이 아닌 URL을 여는 링크를 만듭니다.)
Linkify
다음과 같은 문자열 리소스 사용:
<string name="links">Here is a link: http://www.stackoverflow.com</string>
그런 다음 텍스트 보기에서:
TextView textView = ...
textView.setText(R.string.links);
Linkify.addLinks(textView, Linkify.ALL);
Html
사용.Html.fromHtml
:
<string name="html">Here you can put html <a href="http://www.stackoverflow.com">Link!</></string>
텍스트 보기에서 다음을 수행합니다.
textView.setText(Html.fromHtml(getString(R.string.html)));
TextWatcher for TextView를 사용할 수 있습니다. 이는 ClickLinstener보다 유연합니다(최상 또는 최악은 아니지만 한 가지 방법만 더 있음).
holder.bt_foo_ex.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// code during!
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// code before!
}
@Override
public void afterTextChanged(Editable s) {
// code after!
}
});
언급URL : https://stackoverflow.com/questions/3328757/how-to-click-or-tap-on-a-textview-text
'programing' 카테고리의 다른 글
Node.JS 폴더의 파일 루프 (0) | 2023.08.12 |
---|---|
Python에서 하위 프로세스, 멀티프로세싱 및 스레드 중에서 결정하시겠습니까? (0) | 2023.08.12 |
MySQL 테이블에 사용자 정의 CHECK 제약 조건을 추가하려면 어떻게 해야 합니까? (0) | 2023.08.12 |
MySQL에서 문자열을 숫자로 자동 캐스트/변환하시겠습니까? (0) | 2023.08.12 |
MS Excel에서 공통 집합 연산(결합, 교차, 마이너스)을 수행하려면 어떻게 해야 합니까? (0) | 2023.08.12 |