android培训内容明细,记录Android开发学习
记录Android开发学习
Menu菜单学习
1.掌握Android中菜单的创建。
2.掌握Intent信使组件。
创建菜单Menu
我们模仿微信菜单栏学习,创建一个于微信菜单栏相似的菜单
那么我们应该如何创建呢?
首先我们在Android Studio中找到res文件夹,新建一个Directory.
其次我们需要在弹出的对话框对这个Directory进行命名。
然后在res就会得到一个新的文件夹menu
对menu文件夹右键新建一个Menu Resource File
对Menu Resource File进行设定
随后在Menu文件夹下面找到对应的menu.xml,进行代码的编写:
android:title="发起群聊"
android:id="@+id/ietmGroup" />
android:title="添加朋友"
android:id="@+id/ietmAddfriend" />
android:title="扫一扫"
android:id="@+id/ietmScan" />
android:title="收付款"
android:id="@+id/ietmMoney" />
android:title="帮助与反馈"
android:id="@+id/ietmHelp" />
通过窗口预览,我们已经初步得到了我们需要的结果。
创建主界面MainActivity
将我们初步完成的菜单栏嵌入我们的主界面MainAcitivity中。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu,menu);
return super.onCreateOptionsMenu(menu);
}
有了简单的菜单还不足够,我们需要继续完善点击菜单的响应功能,让用户知道他的点击得到回应。
设置点击事件
点击响应我们需要用到Toast.makeText方法
@Override
public boolean onOptionsItemSelected( MenuItem item) {
switch(item.getItemId()){
case R.id.ietmGroup:
Toast.makeText (MainActivity.this,"你点击了发起群聊",Toast.LENGTH_LONG).show();
break;
case R.id.ietmAddfriend:
Toast.makeText (MainActivity.this,"你点击了添加朋友",Toast.LENGTH_LONG).show();
break;
case R.id.ietmScan:
Toast.makeText (MainActivity.this,"你点击了扫一扫",Toast.LENGTH_LONG).show();
break;
case R.id.ietmMoney:
Toast.makeText (MainActivity.this,"你点击了收付款",Toast.LENGTH_LONG).show();
break;
case R.id.ietmHelp:
Toast.makeText (MainActivity.this,"你点击了帮助与反馈",Toast.LENGTH_LONG).show();
break;
default:
}
return true;
}
这样一来,用户就能够知道点击得到回应。
接下来我们丰富两个功能,点击发起群聊跳转需要实现的效果为当点击发起群聊可以将数据“hello 我发起群聊了”发送给目标活动GroupChartActivity,目标活动接收数据并用Toast打印出来。点击添加朋友开启目标活动AddFriendsActivity,目标活动返回数据“hello 我是你的朋友teacher tony”给MainActivity,MainActivity接收数据并用Toast打印出来。
发送数据
我们先创建GroupChartActivity,为后续功能开发做准备。我们可以使用startActivity() 方法开启活动发送数据。
在MainActivity中发起群聊里添加startActivity()方法,如下:
case R.id.ietmGroup:
Intent intent = new Intent(MainActivity.this,GroupChartActivity.class);
intent.putExtra("sendData","hello 我发起群聊了");
startActivity(intent);
Toast.makeText (MainActivity.this,"你点击了发起群聊",Toast.LENGTH_LONG).show();
break;
在GroupCharActivity添加接受sendData,使用Intent组件进行关联响应,如下:
Intent intent=getIntent();
String sendData= ((Intent) intent).getStringExtra("sendData");
Toast.makeText(GroupChartActivity.this,sendData,Toast.LENGTH_LONG).show();
如此一来,我们就能进行我们的数据传送,点击发起群聊,我们跳转页面并且发送信息由Toast打印显示,如图:
接受数据
为了接受数据先创建AddFriendsActivity,为后续功能开发做准备。我们可以使用startActivityForResult() 方法开启活动发送数据。
在MainActivity中发起群聊里添加startActivityForResult()方法,如下:
case R.id.ietmAddfriend:
Intent intent1=new Intent(MainActivity.this,AddFriendsActivity.class);
startActivityForResult(intent1,1);
Toast.makeText (MainActivity.this,"你点击了添加朋友",Toast.LENGTH_LONG).show();
break;
在AddFriendsActivity我们需要一个按钮进行数据的返回,如下:
Button button=findViewById(R.id.buttondata);
button.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v) {
Intent intent =new Intent();
intent.putExtra("returnData","hello 我是你的朋友 teacher tony");
setResult(RESULT_OK,intent);
finish();
}
});
}
按钮我们需要在AddFriendsActivit相对应的xml中进行设计
android:id="@+id/buttondata"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="78dp"
android:text="返回数据"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
到目前为止,我们只是完成了发送数据的步骤和接受数据的准备,我们尝试运行一下页面。
我们尝试点击返回数据,无任何结果。说明我们的功能还未完善,只完成了部分。此时我们要运用到if函数,以及setResult(RESULT_OK,intent);这一条指令。这是我们接受数据的关键,当我们得到Result_ok时,我们成功返回数据。
在MainActivity中添加相对应的方法:
@Override
protected void onActivityResult(int requestCode, int resultCode,Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case 1: if (resultCode == RESULT_OK){
String returnData =data.getStringExtra("returnData");
Toast.makeText(MainActivity.this,returnData,Toast.LENGTH_LONG).show();
break;
}
}
}
我们再尝试运行,点击返回数据按钮:
这一次,我们成功接收到了我们需要的数据:hello,我是你的朋友 teacher tony。
自此,我们这一次的Android 开发的学习到了结尾。本次学习我们初步认识了Android菜单的设定,菜单的响应,发送数据和接收数据
Android开发的学习未完待续
标签:Toast,MainActivity,记录,学习,点击,makeText,Intent,Android,我们
来源: https://blog.csdn.net/genijmni/article/details/105760691
android培训内容明细,记录Android开发学习相关推荐
- 青岛 android培训哪家好,青岛android培训学习班
青岛android培训学习班?Android系统的源代码非常庞大和复杂,我们不能贸然进入,否则很容易在里面迷入方向,进而失去研究它的信心.我们应该在分析它的源代码之前学习好一些理论知识,下面就介绍一些 ...
- android删除短信记录,android 4.4 以上删除短信的方法
android 4.4之后非默认的短信应用已经没有办法删除短信了.像以前那样用如下方法是不会没法删除短信的(即使在xml中配置了短信的读写权限),同时也不会有报错或其他提示. 但通过打印可以看到上述代 ...
- android微信分享工具,记录Android微信分享功能的吐槽与思考
在App内潜入分享到微信好友或朋友圈的功能想必大家已经屡见不鲜了,比如Android分享一个网页信息(URL)到微信客户端的代码: /** * 微信分享:分享网页 * @param context * ...
- android 紧急号码没记录,android – 当呼叫被隐瞒/未知时,来电号码是...
您可以阅读TelephonyRegistry的来源:Link /** - this class provides a centralized place that applications can r ...
- android模拟器内容为空,android getlastknownlocation在模拟器中始终为null
这似乎是一个常见的问题,但是即使我读了很多类似的问题,我也真的不明白为什么会这样. 我正在模拟器设备上使用基本的位置类,我设置了所有内容- 权限(FINE和COARSE),在DDMS中设置了坐标,我也 ...
- android webview内容变大,Android中WebView加载的网页被放大的解决办法
在某些大分辨率下,我们用WebView加载的网页可能会出现被放大的现象,这显然不是我们想要的结果,我开始看WebSettings这个是否可以设置不缩放,webSettings.setBuiltInZo ...
- android培训总结范文,android培训基础知识总结
android培训基础知识总结,有需要的朋友可以参考下. android培训之1. Android的四大组件是哪些,它们的作用? Activity:Activity是Android程序与用户交互的窗口 ...
- android p获取通话记录_[android] 取得最近通话记录的方法
经过一下午的研究,终于弄明白了android中,关于通话记录取得的方法.下边是自己的一点心得. final Cursor cursor = cr.query(CallLog.Calls.CONTENT ...
- 安卓开发学习日记第五天——奇怪的bug出现了(VT-x说没就没)_莫韵乐的欢乐日记
安卓开发学习日记第五天--奇怪的bug出现了(VT-x说没就没) 前情提要: 安卓开发学习日记第一天_Android Studio3.6安装 安卓开发学习日记第二天_破坏陷阱卡之sync的坑 安卓开发 ...
最新文章
- ubuntu系统声音_今日热闻 | 小米11有望首发骁龙875、折叠iPhone测试、新规禁止网购忽悠打折、印度真米粉、M1 Mac运行Ubuntu...
- 奇葩面试经历分享:喊价25K,HR 却给了30K!
- 使用visualvm远程监控LINUX服务器JVM
- 【转】企业开发的困境与变局
- windows离线安装grunt_chrome火狐离线安装包下载
- cmake常用语法参考
- libsvm 参数以及计算测试点相似度
- 17、手势(Gesture)
- Rust : channel、多线程与 CTP相关机制的模拟
- 【语音去噪】基于matlab基本维纳滤波算法语音去噪【含Matlab源码 570期】
- 序 - 致“正当时”
- 【论文笔记】Video Transformer Network
- NSCalendar 日历类
- python自学爬虫要多久_自学python爬虫需要多久
- Shell一句话根据进程名杀死进程
- 扫描二维码下载app,判断是Android还是ios,并跳转到不同的下载地址
- 【归并排序】基础代码
- 转:System32与SysWOW64的关系
- 【Oracle】高级查询练习题详解
- GarageGames公布新游戏开发平台
热门文章
- 生鲜电商回光返照? 不! 是起死回生!
- 【BZOJ】3390: [Usaco2004 Dec]Bad Cowtractors牛的报复(kruskal)
- linux 链接ln的使用 创建和删除符号连接(软、硬链接)
- 世上最详细的子网划分教程,看完保证会
- 网络加速和优化控制常用管理
- 达梦数据库中服务器日志的开关
- 利用Angular2的Observables实现交互控制
- Xamarin+vs2010部署错误:error MSB6004: 指定的任务可执行文件位置\sdk\\tools\zipalign.exe”无效...
- 【数据挖掘】中文期刊点评
- 技巧: 用 JAXM 发送和接收 SOAP 消息—Java API 使许多手工生成和发送消息方面必需的步骤自动化...