android - 通过 TextView 打开默认短信应用程序

标签 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:"));
        }

    };

}
}

最佳答案

首先,您需要获取要使其可点击的 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 上发表的第一篇文章,希望它不会是最后一篇!

关于android - 通过 TextView 打开默认短信应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17570490/

相关文章:

android - 在 Retrofit 2 和 OkHttp3 中使用 @PUT

java - 使用 Lambda 设置 OnCheckedChangeListener

android - Android Studio 新手,无法使用 android 库

java - 即使类位于同一目录中,我仍然收到两个接口(interface)类的 "error: cannot find symbol"

html - 在 Eclipse 的动态 Web 元素中的何处以及如何添加 CSS?

android - 处理文件选择器 android WebViews

android - 向联系人列表中的电话号码发送短信

objective-c - MFMessageComposeViewController 中的界面语言

sms - 基于 Web 的 API 可以告诉我某个号码是固定电话还是手机?

android - 与 "Missing styles. Is the correct theme chosen for this layout?"问题作斗争