Android中的Clickable TextView

Cri*_*ris 17 android textview

我正在构建一个Android应用程序,它有许多我想要点击的TextView.我试图分配的属性android:clickable="true"android:onClick="clickHandler"对单TextView,当应用程序触发了clickHandler(View v)我正确地获取单击项目通过v.getId().我不喜欢的是为每个TextView属性定义属性,android:clickable并且android:onClick......我可以通过代码来说明:"所有的文本视图都是可点击的,并且点击是在处理的clickHandler吗?"

谢谢.

xil*_*il3 20

你可以在下面做这样的事情 - 这样他们都有相同的处理程序:

public class sticks extends Activity implements View.OnTouchListener { 
  private TextView tv1; 
  private TextView tv2;
  private TextView tv3;

  @Override 
  public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    tv1 = (TextView) findViewById(R.id.tv1); 
    tv2 = (TextView) findViewById(R.id.tv2); 
    tv3 = (TextView) findViewById(R.id.tv3); 

    // bind listeners
    tv1.setOnTouchListener(this); 
    tv2.setOnTouchListener(this); 
    tv3.setOnTouchListener(this); 

  } 

  @Override 
  public boolean onTouch(View v, MotionEvent event) { 
    // check which textview it is and do what you need to do

    // return true if you don't want it handled by any other touch/click events after this
    return true; 
  } 
}
Run Code Online (Sandbox Code Playgroud)


Roo*_*ahi 14

我用过这个:

        <TextView
            android:id="@+id/txtTermsConditions"
            android:layout_width="180dp"
            android:layout_height="50dp"
            android:layout_marginLeft="20dp"
            android:layout_marginTop="10dp"
            android:onClick="onTermConditions"
            android:clickable="true"
            android:focusable="true"
            android:text="Terms and Conditions"
            android:textColor="@color/blue" />
Run Code Online (Sandbox Code Playgroud)


Ima*_*shi 6

嗨,您必须同时使用以下两个代码:

  <TextView
        android:id="@+id/reg_text"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/login_btn"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="10dp"
        android:clickable="true"
        android:text="Are you now need to create an account?"
        android:textColor="#ff0000ff"
        android:textSize="15sp"
        />
Run Code Online (Sandbox Code Playgroud)

private TextView tv1;
        tv1= (TextView)findViewById(R.id.reg_text);
    tv1.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View arg0, MotionEvent arg1) {
            // TODO Auto-generated method stub
            ProgressDialog progressBar = ProgressDialog.show(MainActivity.this, "Title",
                    "????? ?????!");
            progressBar.setCancelable(true);
            Intent i = new Intent(getApplicationContext(), Register.class);
            startActivity(i);
            return false;
        }
    });
Run Code Online (Sandbox Code Playgroud)