适用于Views的Android onClick事件

时间:2014-02-25 13:40:40

标签: android onclick textview onclicklistener clickable

我有想法为几个TextView设置android:onClick="myClickMethod"

<TextView
    android:id="@+id/search_suggestion_1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:onClick="myClickMethod"                
    android:clickable="true"/>

<TextView
    android:id="@+id/search_suggestion_2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:onClick="myClickMethod"                
    android:clickable="true"/>

<TextView
    android:id="@+id/search_suggestion_3"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:onClick="myClickMethod"                
    android:clickable="true"/>

我如何区别于调用哪个TextView myClickMethod()?

6 个答案:

答案 0 :(得分:2)

您可以使用每个文本视图的ID来完成。根据文本视图ID,在myClickMethod中使用Switch-Case。您还可以通过标记来区分文本视图。

答案 1 :(得分:0)

您可以为每个人设置tag。这样,例如,对于第一个View使用android:tag="1"等等。

onClick方法中,只需使用v.getTag(),您就可以区分它们。

答案 2 :(得分:0)

您可以使用简单的开关案例

public void myClickMethod(View v)
{
  switch(v.getId()) /
  // id is an int value. use getId to get the id of the view
  {
         case R.id.search_suggestion_1:
             // search suggestion 1
         break 
         case R.id.search_suggestion_2 :
             // search suggestion 2
         break; 
         case R.id.search_suggestion_3:
             // search suggestion 3
         break;
  }
} 

答案 3 :(得分:0)

当您在以下活动中创建函数时:

public void onClickMethod(View view){
//Input argument is the view on which click is fired.
//Get id of that view

int id = view.getId();

switch(id){
// your logic
}
}

答案 4 :(得分:0)

您可以使用switch-case通过比较Textview来确定id被按下的决定。

public void myClickMethod(View v) {

    switch(v.getd()) {

        case R.id.search_suggestion_1:
           //code here
           break;

        case R.id.search_suggestion_2:
           //code here
           break;

       case R.id.search_suggestion_3:
          //code here
          break;
   }

}

答案 5 :(得分:0)

public void myClickMethod(View v)
{
  switch(v.getId())
  {

    case R.id.search_suggestion_1:
   //code here
     break;
    case R.id.search_suggestion_2:
   //code here
     break;
    case R.id.search_suggestion_3:
   //code here
    break;
    default: break;
  }
}