电话点击查看textview

时间:2013-08-04 21:46:40

标签: java android textview

好的,所以我看了一下,并试图理解我发现的其他一些代码,但没有任何事情对我有用。我试图让用户点击textview并将它们带到他们的手机拨号盘。

这是Java:

public class Info extends Activity {
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.moreinfo);
    Button appoint =(Button) findViewById(R.id.btnAppoint);
    TextView phone =(TextView) findViewById(R.id.phoneTxt);
    String url = phone.getText().toString();
   Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(url));
    appoint.setOnClickListener(new OnClickListener () {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            startActivity(new Intent(Info.this, EmailContact.class));
        }
    });

    phone.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            Intent callIntent = new Intent(Intent.ACTION_CALL);
            callIntent.setData(Uri.parse("tel:+"+phone.getText().toString().trim()));
            startActivity(callIntent );
        }
});
}
}

我也把android:clickable = true,所以我不知道这是不是问题。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:2)

更改phone.getText().toString().trim()以使用提供给onclick方法的View对象:

phone.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
    // TODO Auto-generated method stub
    Intent callIntent = new Intent(Intent.ACTION_DIAL);
    callIntent.setData(Uri.parse("tel:+"+((TextView)arg0).getText().toString().trim()));
    startActivity(callIntent );
}
});

此外,如果您只想显示加载了电话号码的拨号器,则表示您使用了错误的意图操作,而Intent.ACTION_DIAL代替Intent.ACTION_CALL将显示拨号器。您正在使用的Intent.ACTION_CALL实际上会启动电话,要使其正常工作,您需要为您的清单添加相应的权限:

<uses-permission android:name="android.permission.CALL_PHONE" />

答案 1 :(得分:1)

根据您的描述,它是红色的,因为如果您要在匿名obejct中使用类方法级别对象,则必须将该对象定义为final。

final TextView phone =(TextView) findViewById(R.id.phoneTxt);

为了进一步衡量,请确保您使用正确的权限在清单中执行呼叫操作:

<uses-permission android:name="android.permission.CALL_PHONE" />