刚开始写Android程序如图发现使用了findViewById方法之后输出的话居然是null(空指针错误),也就是说这个方法没有成功。网上说这样写是在activity_main .xml去找这个ID所代表的控件,而现在使用的ADT在layout下除了activity_main .xml还多生成了一个fragment_main.xml。我就是把控件写在了后一个布局文件中。想请问下,使用什么样的方法是在fragment_main.xml去寻找控件呢?

回答:在PlaceHolderFragment的onCreateView里面初始化textView.

http://bbs.csdn.net/topics/390740123?page=1#post-397370237这个帖子写的特好,大拇指竖起来!

  1 package com.example.sms;
  2
  3 import java.util.ArrayList;
  4
  5 import android.support.v7.app.ActionBarActivity;
  6 import android.support.v7.app.ActionBar;
  7 import android.support.v4.app.Fragment;
  8 import android.telephony.SmsManager;
  9 import android.os.Bundle;
 10 import android.view.LayoutInflater;
 11 import android.view.Menu;
 12 import android.view.MenuItem;
 13 import android.view.View;
 14 import android.view.ViewGroup;
 15 import android.widget.EditText;
 16 import android.widget.Toast;
 17 import android.os.Build;
 18
 19 public class MainActivity extends ActionBarActivity {
 20
 21     static EditText mETNumber;
 22     static EditText mETContent;
 23
 24     @Override
 25     protected void onCreate(Bundle savedInstanceState) {
 26         super.onCreate(savedInstanceState);
 27         setContentView(R.layout.activity_main);
 28
 29         if (savedInstanceState == null) {
 30             getSupportFragmentManager().beginTransaction()
 31                     .add(R.id.container, new PlaceholderFragment()).commit();
 32         }
 33     }
 34
 35
 36
 37     @Override
 38     public boolean onCreateOptionsMenu(Menu menu) {
 39
 40         // Inflate the menu; this adds items to the action bar if it is present.
 41         getMenuInflater().inflate(R.menu.main, menu);
 42         return true;
 43     }
 44
 45
 46
 47
 48
 49     @Override
 50     public boolean onOptionsItemSelected(MenuItem item) {
 51         // Handle action bar item clicks here. The action bar will
 52         // automatically handle clicks on the Home/Up button, so long
 53         // as you specify a parent activity in AndroidManifest.xml.
 54         int id = item.getItemId();
 55         if (id == R.id.action_settings) {
 56             return true;
 57         }
 58         return super.onOptionsItemSelected(item);
 59     }
 60
 61
 62
 63
 64     /**
 65      * A placeholder fragment containing a simple view.
 66      */
 67     public static class PlaceholderFragment extends Fragment {
 68
 69         public PlaceholderFragment() {
 70         }
 71
 72         @Override
 73         public View onCreateView(LayoutInflater inflater, ViewGroup container,
 74                 Bundle savedInstanceState) {
 75             View rootView = inflater.inflate(R.layout.fragment_main, container,
 76                     false);
 77
 78             //由于在fragment_main里面定义了,因此需要在这里定义
 79             mETNumber =(EditText) rootView.findViewById(R.id.et_number);
 80             mETContent = (EditText) rootView.findViewById(R.id.et_content);
 81
 82
 83             return rootView;
 84         }
 85     }
 86
 87     public void send(View v){
 88     String number = mETNumber.getText().toString().trim();
 89     String content = mETContent.getText().toString().trim();
 90
 91     if("".equals(number)||"".equals(content)){
 92         Toast.makeText(this, R.string.error_message, Toast.LENGTH_LONG).show();//添加show才可以显示出来
 93     }else{
 94         //这是发送一条常规短信的写法
 95         //SmsManager.getDefault().sendTextMessage(number, null, content, null, null); //需要授权,请注意添加
 96         //Toast.makeText(this,R.string.success_message, Toast.LENGTH_LONG).show();
 97         SmsManager smsmanager = SmsManager.getDefault();
 98         ArrayList<String> messages = smsmanager.divideMessage(content);//ArrayList是个集合,里面的类型是String类型的,这是根据dividemessage的补充说明添加的
 99         for(String message:messages){
100             smsmanager.sendTextMessage(number, null, message, null, null);
101
102         }
103
104     }
105 }}

过去没有fragment_main.xml的时候,在onCreate()方法里面可以随便写code;现在经过试验,还是在fragment里面布局,方便拖动,写code时候找到OnCreateView()方法,在里面写写就OK啦。。。

另外一个收获是,apk中涉及走流量或者花钱的,需要授权,直接在menifest里面授权即可。

转载于:https://www.cnblogs.com/ianthe/p/3723953.html

Android学习--写一个发送短信的apk,注意布局文件的处理过程!!!相关推荐

  1. 使用Android Studio写一个发短信的小案例

    废话不多说,直接贴图 代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayoutan ...

  2. android 拨打电话与发送短信

    通过调用android系统提供的电话与短信功能,可以简单的实现发送短信,拨打电话,但是必须在AndroidManifest.xml里面配置相应权限,定位到 1 <application 2 3 ...

  3. Android软件开发之发送短信与系统短信库解析(三十)

    Android软件开发之发送短信与系统短信库解析 雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/arc ...

  4. android不调用系统发送短信,android之两种方式调用短信发送接口

    释放双眼,带上耳机,听听看~! 相信很多程序员在开发程序的时候都会遇到短信调用端口的情况,今天是技术狗小编为大家带来的关于android之两种方式调用短信发送接口,希望对你学习这方面知识有帮助! an ...

  5. uni-app中使用native.js调用android API实现双卡发送短信

    uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS.Android.H5.以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉)等多个平台官网地址 因 ...

  6. 【Android】Android6.0发送短信Demo

    整理一下使用SmsManager类发送短信的方法. https://developer.android.com/reference/android/telephony/SmsManager.html ...

  7. Android开发app实现发送短信功能

    程序使用手机发短信的方法 短信收发: ◆发送短信只需要几行代码,如下: SmsManager sms = SmsManager.getDefault(); PendingIntent pi = Pen ...

  8. 手把手教你写一个获取短信验证码业务(基于Spring Boot+Redis+阿里云短信服务)

    文章目录 一.阿里云短信环境搭建 1.开启使用子用户,创建用户组和用户 2.开通阿里云短信服务 二.环境测试 1.新建Spring Boot(web)项目,导入依赖 2.在测试类中进行测试 三.真实业 ...

  9. android开发发送短信,Android开发入门之发送短信

    第一步:新建一个Android工程命名为03.Sms目录结构如下图: 第二步:修改activity_main.xml布局文件代码如下: xmlns:tools="http://schemas ...

最新文章

  1. Mac 上使用 Clion 阅读C++源码的一些操作
  2. 此应用无法在你的电脑上运行_苹果自研电脑芯片 M1 配合 macOS 11,可直接运行 iOS 应用...
  3. Maven中使用tomcat:run出现错误org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
  4. 带你走进rsync的世界
  5. MongoDB,凉凉?
  6. java 最大公约数和最小公倍数
  7. java api csdn_java api函数读出当前机器名以及版本号 csdn
  8. yolo数据集txt标注转voc数据集xml标注格式
  9. HappyAA服务器部署笔记1(nginx+tomcat的安装与配置)
  10. 程序员求职之道(《程序员面试笔试宝典》)之民间的企业排名的可信度到底有多大?...
  11. c++中istream类型到bool类型的隐式转换
  12. mybatis-plus修改操作(自动填充)
  13. python 进度条_2019年的代码都写完了吗?不如做个Python进度条看看还剩多少
  14. 计算机网络安全方面论文题目,计算机网络安全方面论文题目 计算机网络安全毕业论文题目怎么定...
  15. autojs 文件转base64
  16. 15个国外最佳免费图片素材网站,快让小伙伴都知道
  17. java毕业设计演唱会门票订售及管理系统Mybatis+系统+数据库+调试部署
  18. 在办公室谈论工资话题的技巧
  19. 微信签名错误解决步骤
  20. 机器学习、数据挖掘、统计建模的技术担当,20款免费预测分析软件

热门文章

  1. 揭秘 DockerCon 重量级演讲嘉宾(四)
  2. Applications Manager应用性能透视能力--Java Web事务监控
  3. js解析json数据
  4. return view前端怎么获取_Web 前端路由原理解析和功能实现
  5. pvr转png工具_图片如何转换格式?最好用的3个转换工具都在这了
  6. Python接口自动化之logging封装及实战
  7. 萌新的Python练习实例100例(一)四个数字组成互不相同且无重复的三位数
  8. python 网络页面爬取
  9. 拉卡拉2020年股东净利润9.31亿 积极布局数字人民币业务
  10. DeFIL.org的资金池规模达168万枚FIL 已借出105万枚FIL