这是(我的)以下问题的扩展:
除此之外,当我单击我的 TextLabel 时,我收到以下运行时错误/崩溃:
java.lang.IllegalStateException: Could not find a method onClick(View) in the activity class org.radio.app.Contacts for onClick handler on view class android.widget.TextView with id 'contactLabel'
我认为这是因为我的自定义 OnClickListener 实现在另一个文件中。我尝试将它放入我的活动文件本身,但我得到了同样的错误。
我的 TextView 的 XML 具有以下内容:
<TextView
android:id="@+id/contactLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Label"
android:textColor="@color/orange_theme_text"
android:textStyle="bold"
android:textSize="18sp"
android:paddingRight="7dp"
android:clickable="true"
android:onClick="onClick"/>
关于如何解决这个问题的任何想法?
编辑:这是我的自定义 OnClickListener,它甚至定义了一个 OnClick:
private class ContactOCL extends Activity implements OnClickListener {
String contactInfo;
public ContactOCL(String contactInfo) {
this.contactInfo = contactInfo;
}
public void onClick(View v) {
Log.v("onClick", "Are we even getting here?");
// Check if contactInfo is an email address or a phone number
if (contactInfo.contains("@"))
{
Intent intent = new Intent(Intent.ACTION_VIEW);
Uri data = Uri.parse("mailto:" + contactInfo);
intent.setData(data);
startActivity(intent);
}
// Otherwise we have a phone number
else
{
try {
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:" + contactInfo));
v.getContext().startActivity(callIntent);
} catch (ActivityNotFoundException activityException) {
Log.e("Calling a Phone Number", "Call failed", activityException);
}
}
}
}
再次编辑:这是我的活动片段:
TextLabel = (TextView) viewCI.findViewById(R.id.contactLabel);
TextLabel.setOnClickListener(new ContactOCL(info[i]));