使用Textview中的值进行调用

时间:2012-03-10 12:56:17

标签: android textview

我尝试让用户使用textview中的值拨打电话。问题是对于View.onClicklistener类型未定义startActivity。我正在尝试在lazyadapter中实现这个视图类,有人可以帮助我。这是代码

public View getView(int position, View convertView, ViewGroup parent) {
    View vi = convertView;
    final ViewHolder holder;
    if (convertView == null) {
        vi = inflater.inflate(R.layout.item, null);
        holder = new ViewHolder();
        holder.text3=(TextView) vi.findViewById(R.id.text3);
        holder.text = (TextView) vi.findViewById(R.id.text);
        holder.text2 = (TextView) vi.findViewById(R.id.text2);
        holder.image=(ImageView)vi.findViewById(R.id.image);



        vi.setTag(holder);

    } else
        holder = (ViewHolder) vi.getTag();

    holder.text.setText(list.get(position).Name);
    holder.text3.setText(list.get(position).phone);

    StringBuilder sb = new StringBuilder();
    sb.append(", Address: " + list.get(position).address);

    holder.text3.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
      String phonee="tel:"+ holder.text3.getText().toString().trim();
      Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(phonee));
        startActivity(intent);//error is here

        }
    });

    holder.text2.setText(sb.toString());
    holder.image.setTag(data[position]);
    imageLoader.DisplayImage(data[position], activity, holder.image);
    return vi;
}

2 个答案:

答案 0 :(得分:1)

试试这个,它对我来说很完美..

Intent intent = new Intent(Intent.ACTION_CALL); 
            intent.setData(Uri.fromParts("tel", NUMBER, NUMBER));// Number is string variable..
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            MyActivity.this.startActivity(intent);

你有没有给你的应用程序PHONE权限?

您需要将其提供到AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="aexp.explistemptygroup">
  <uses-permission android:name="android.permission.CALL_PHONE" /> 
 <application>

希望这会对你有所帮助。 感谢....

答案 1 :(得分:0)

您可以尝试使用以下代码

v.getContext().startActivity(intent);