如何设置对话框中文本的单击方法

时间:2014-11-04 11:12:10

标签: java android onclick textview android-dialog

我有包含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

所以看起来该功能不可用

1 个答案:

答案 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);

         }
    });