2013-04-03 71 views
2

当我选择通过onClick在可点击的TextView上调用函数时,如何获取函数以了解哪个TextView调用了它?函数如何知道哪个可点击的textView使用onClick调用它?

例如,当我有这个在我的MainActivity.java:

public void showHideData(View view) 
{ 
    //Log.v("showHideDataA: ", "Calling package null, local class name: " + this.getLocalClassName() + " request orientation: " + ("" + this.getRequestedOrientation())); 
    if (findViewById(R.id.letterContentTextViewArrayB).getVisibility() == View.VISIBLE) 
    { 
     findViewById(R.id.checkedB).setVisibility(View.GONE); 
     findViewById(R.id.notcheckedB).setVisibility(View.VISIBLE); 
     findViewById(R.id.letterContentTextViewArrayB).setVisibility(View.GONE); 
    } 
    else 
    { 
     findViewById(R.id.checkedB).setVisibility(View.VISIBLE); 
     findViewById(R.id.notcheckedB).setVisibility(View.GONE); 
     findViewById(R.id.letterContentTextViewArrayB).setVisibility(View.VISIBLE); 
    } 
} // end of showHideData(0) 

及以下TextViews:

  <TextView 
       android:id="@+id/firstLetterTextViewArrayA" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="@string/btn_a_label" 
       android:clickable="true" 
       android:onClick="showHideData"/> 
      <TextView 
       android:id="@+id/firstLetterTextViewArrayB" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="@string/btn_b_label" 
       android:clickable="true" 
       android:onClick="showHideData" /> 

有没有办法让showHideData(查看视图)知道哪些TextView调用它?

谢谢

回答

3
public void showHideData(View view) 
{ 
    view.getId(); 
    ... 
} 

这将返回被点击的view的ID。所以你可以使用switch声明

public void showHideData(View view) 
{ 
    switch (view.getId()) { 
     case R.id.firstLetterTextViewArrayA: 
     // logic for this button 
     break; 
     case R.id.firstLetterTextViewArrayB: 
     // logic for this button 
     break; 
} 
+0

这是做你所需要的吗? – codeMagic 2013-04-03 21:57:54

+0

我迟到了,因为我在丹麦! 我知道,有人会知道这件事。非常感谢,你确实为我节省了很多烦人的代码和很多难看的代码! 我发现我应该使用案例R.id.firstLetterTextViewA而不是firstLetterTextViewA ... – 2013-04-04 05:57:14

+0

没问题。对不起这个错字,我想我写得很快。我编辑了我的帖子以反映这一点。谢谢! – codeMagic 2013-04-04 08:51:39

相关问题