我有包含TextView的对话框。在TextView里面我有数字,所以我想为TextView设置onClick方法,我想用call方法调用TextView里面的数字
在对话框xml文件中,我将textview设置如下
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#2d76ba"
android:layout_toRightOf="@+id/image"
android:onClick="no1"
android:clickable="true"/>
这是我的对话
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.pop); // pop is my dialog xml
dialog.setTitle("Phone Call");
TextView text = (TextView) dialog.findViewById(R.id.text1);
text.setText(values[0]); /// I'm calling the number from array
public void no1(View v)
{
Intent dial = new Intent();
dial.setAction("android.intent.action.DIAL");
dial.setData(Uri.parse("tel:"+values[0]));
startActivity(dial);
}
但onClick方法(no1)错误,它说“void是变量no1的无效类型”
如何更正在对话框内工作的方法? 我试图在对话框之外进行,但是当我点击textview时,logcat会说
11-04 13:39:48.666:E / AndroidRuntime(26249):java.lang.IllegalStateException:无法在活动类android.view.ContextThemeWrapper中找到方法no1(View),用于视图类android上的onClick处理程序id为'text1'的.widget.TextView
所以看起来该功能不可用
答案 0 :(得分:2)
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.pop); // pop is my dialog xml
dialog.setTitle("Phone Call");
TextView text = (TextView) dialog.findViewById(R.id.text1);
text.setText(values[0]);
text.setOnClickListener(new View.OnClickListener()
{
public void onClick(View view)
{
Intent dial = new Intent();
dial.setAction("android.intent.action.DIAL");
dial.setData(Uri.parse("tel:"+Global.values[0]));
startActivity(dial);
}
});