我想通过 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/