记录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开发学习相关推荐

  1. 青岛 android培训哪家好,青岛android培训学习班

    青岛android培训学习班?Android系统的源代码非常庞大和复杂,我们不能贸然进入,否则很容易在里面迷入方向,进而失去研究它的信心.我们应该在分析它的源代码之前学习好一些理论知识,下面就介绍一些 ...

  2. android删除短信记录,android 4.4 以上删除短信的方法

    android 4.4之后非默认的短信应用已经没有办法删除短信了.像以前那样用如下方法是不会没法删除短信的(即使在xml中配置了短信的读写权限),同时也不会有报错或其他提示. 但通过打印可以看到上述代 ...

  3. android微信分享工具,记录Android微信分享功能的吐槽与思考

    在App内潜入分享到微信好友或朋友圈的功能想必大家已经屡见不鲜了,比如Android分享一个网页信息(URL)到微信客户端的代码: /** * 微信分享:分享网页 * @param context * ...

  4. android 紧急号码没记录,android – 当呼叫被隐瞒/未知时,来电号码是...

    您可以阅读TelephonyRegistry的来源:Link /** - this class provides a centralized place that applications can r ...

  5. android模拟器内容为空,android getlastknownlocation在模拟器中始终为null

    这似乎是一个常见的问题,但是即使我读了很多类似的问题,我也真的不明白为什么会这样. 我正在模拟器设备上使用基本的位置类,我设置了所有内容- 权限(FINE和COARSE),在DDMS中设置了坐标,我也 ...

  6. android webview内容变大,Android中WebView加载的网页被放大的解决办法

    在某些大分辨率下,我们用WebView加载的网页可能会出现被放大的现象,这显然不是我们想要的结果,我开始看WebSettings这个是否可以设置不缩放,webSettings.setBuiltInZo ...

  7. android培训总结范文,android培训基础知识总结

    android培训基础知识总结,有需要的朋友可以参考下. android培训之1. Android的四大组件是哪些,它们的作用? Activity:Activity是Android程序与用户交互的窗口 ...

  8. android p获取通话记录_[android] 取得最近通话记录的方法

    经过一下午的研究,终于弄明白了android中,关于通话记录取得的方法.下边是自己的一点心得. final Cursor cursor = cr.query(CallLog.Calls.CONTENT ...

  9. 安卓开发学习日记第五天——奇怪的bug出现了(VT-x说没就没)_莫韵乐的欢乐日记

    安卓开发学习日记第五天--奇怪的bug出现了(VT-x说没就没) 前情提要: 安卓开发学习日记第一天_Android Studio3.6安装 安卓开发学习日记第二天_破坏陷阱卡之sync的坑 安卓开发 ...

最新文章

  1. ubuntu系统声音_今日热闻 | 小米11有望首发骁龙875、折叠iPhone测试、新规禁止网购忽悠打折、印度真米粉、M1 Mac运行Ubuntu...
  2. 奇葩面试经历分享:喊价25K,HR 却给了30K!
  3. 使用visualvm远程监控LINUX服务器JVM
  4. 【转】企业开发的困境与变局
  5. windows离线安装grunt_chrome火狐离线安装包下载
  6. cmake常用语法参考
  7. libsvm 参数以及计算测试点相似度
  8. 17、手势(Gesture)
  9. Rust : channel、多线程与 CTP相关机制的模拟
  10. 【语音去噪】基于matlab基本维纳滤波算法语音去噪【含Matlab源码 570期】
  11. 序 - 致“正当时”
  12. 【论文笔记】Video Transformer Network
  13. NSCalendar 日历类
  14. python自学爬虫要多久_自学python爬虫需要多久
  15. Shell一句话根据进程名杀死进程
  16. 扫描二维码下载app,判断是Android还是ios,并跳转到不同的下载地址
  17. 【归并排序】基础代码
  18. 转:System32与SysWOW64的关系
  19. 【Oracle】高级查询练习题详解
  20. GarageGames公布新游戏开发平台

热门文章

  1. 生鲜电商回光返照? 不! 是起死回生!
  2. 【BZOJ】3390: [Usaco2004 Dec]Bad Cowtractors牛的报复(kruskal)
  3. linux 链接ln的使用 创建和删除符号连接(软、硬链接)
  4. 世上最详细的子网划分教程,看完保证会
  5. 网络加速和优化控制常用管理
  6. 达梦数据库中服务器日志的开关
  7. 利用Angular2的Observables实现交互控制
  8. Xamarin+vs2010部署错误:error MSB6004: 指定的任务可执行文件位置\sdk\\tools\zipalign.exe”无效...
  9. 【数据挖掘】中文期刊点评
  10. 技巧: 用 JAXM 发送和接收 SOAP 消息—Java API 使许多手工生成和发送消息方面必需的步骤自动化...