通过textview打开默认短信应用

时间:2013-07-10 12:19:02

标签: android eclipse sms

我想通过TextView打开默认短信应用。我对如何做到这一点有一个粗略的想法,但我不是100%肯定。我已经查阅了多个关于此的教程和问题,并且没有对它进行简单介绍。

这主要是我遇到问题的Java方面。我已经设置了我希望代码进入的类,并设置了 XML textview以响应Onclicks

对于 Java 中的代码看起来有点麻烦,谢谢。

更新了代码,在“context”,“text”,“phoneNumber”和“smsOnClicklistener”上收到错误。我得到的错误是无法解决变量:

package com.youtube.iamjackpot;

import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.TextView;

public class InfomenuActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_infomenu);

    TextView textView3 = (TextView) findViewById(R.id.textView3);
    smsOnClickListener = new View.OnClickListener() {

        public void onClick(View v) {
            Intent smsIntent = new Intent(
                    android.content.Intent.ACTION_VIEW);
            smsIntent.setType("vnd.android-dir/mms-sms");
            smsIntent.putExtra("address", phoneNumber);
            smsIntent.putExtra("sms_body", text);
            context.startActivity(Intent.createChooser(smsIntent,"SMS:"));
        }

    };

}
}

2 个答案:

答案 0 :(得分:8)

首先,您需要暂停您想要点击的TextView。您可以使用TextView的引用来执行此操作:

TextView tv = (TextView)findViewById(R.id.textViewId);

当你有参考时,你可以为它设置一个OnClickListener,这样当它被点击时,OnClickListener将被触发,如下所示:

tv.setOnClickListener(smsOnClickListener);

您案例中的OnClickListener应如下所示:

smsOnClickListener = new View.OnClickListener() {

    public void onClick(View v) {
      Intent smsIntent = new Intent(android.content.Intent.ACTION_VIEW);
        smsIntent.setType("vnd.android-dir/mms-sms");
        smsIntent.putExtra("address", phoneNumber);
        smsIntent.putExtra("sms_body", text);
        context.startActivity(Intent.createChooser(smsIntent, "SMS:"));
    }

}

祝你好运! :)这是我对StackOverFlow的第一篇文章,希望它不会是最后一篇!

答案 1 :(得分:1)

单击文本视图,执行以下操作:

 Intent smsIntent = new Intent(android.content.Intent.ACTION_VIEW);
            smsIntent.setType("vnd.android-dir/mms-sms");
            smsIntent.putExtra("address", phno);
            smsIntent.putExtra("sms_body", body);
            context.startActivity(Intent.createChooser(smsIntent, "SMS:"));