kotlin编《第一行代码》(1)

一、android studio中使用kotlin扩展

  在build.gradle中添加apply plugin: ‘kotlin-android-extensions‘

  在kt中添加import kotlinx.android.synthetic.main.layout.*

  使用:

  textView.setText("使用kotlin扩展")

二、使用Toast

java:

  public void onClick(View v)
{

  switch
(v.getId()) {

  case
R.id.button1:

   tst
= Toast.makeText(this, "111111111", Toast.LENGTH_SHORT);

   tst.show();

      break;

    case
R.id.button2:

       tst
= Toast.makeText(this, "222222222", Toast.LENGTH_SHORT);

      tst.show();

       break;

     default:

      break;

    }

  }

kotlin:

  fun open(v: View?){

  Toast.makeText(this,"toast方法",Toast.LENGTH_SHORT).show();

 }

三、使用menu

  res新建menu文件夹,新建main菜单文件

  main.xml中添加(菜单项)

  <item

    android:id="@+id/add_item"

    android:title="Add"/>

  <item

    android:id="@+id/remove_item"

    android:title="Remove" />

ctrl+o重写onCreateOptionsMenu

Java:

  getMenuInflater().inflate(R.menu.main,menu);

  return true;

kotlin:

  override fun
onCreateOptionsMenu(menu: Menu?): Boolean {

    menuInflater.inflate(R.menu.main,menu)

    return super.onCreateOptionsMenu(menu)

  }

重写onOptionsItemSelected

Java:

  switch(item.getItemId()){

  case R.id.add_item:

    Toast.makeText(this,"add",Toast.LENGTH_SHORT).show();

    Break;

  case R.id.remove_item:

    Toast.makeText(this,"remove",Toast.LENGTH_SHORT).show();

    Break;

  default:

  }

  Return true;

}

Kotlin:

  override fun
onOptionsItemSelected(item: MenuItem?):Boolean {

    when(item!!.itemId){

    R.id.add_item
->Toast.makeText(this,"ffff",Toast.LENGTH_SHORT).show()

    R.id.remove_item
->Toast.makeText(this,"dddd",Toast.LENGTH_SHORT).show()

    }

    return true

  }

四、intent显式

Java:

  public void
onClick(View v){

    Intent intent=new
Intent(this,secondactivity.class);
    startActivity(intent);

  }

Kotlin:

  fun change(v:View?){

    val intent=Intent(this,secondactivity::class.java);

    startActivity(intent);

  }

五、向下传递数据

java:

第一活动

  public void onClick(View v){

    String data="Hello SecondActivity";

    Intent intent=new
Intent(this,secondactivity.class);

    intent.putExtra("extra_data",data);

    startActivity(intent);

  }

第二活动

  public void onCreate(Bundle saveInstanceState){

    Intent intent=getIntent();

    String data=intent.getStringExtra("extra_data");

    log.d("SecondActivity",data);

  }

kotlin:

第一活动

  fun change(v:View?){
    val data="hello secondactivity";
    val intent=Intent(this,secondactivity::class.java);
    intent.putExtra("extra_data",data);
    startActivity(intent);
  }

第二活动

  public void onCreate(Bundle saveInstanceState){

    super.onCreate(savedInstanceState)

    setContentView(R.layout.activity_secondactivity)

    val data=intent.getStringExtra("extra_data");

    Toast.makeText(this,data,Toast.LENGTH_LONG).show();

  }

六、intent回传

java:

第一活动

  public void onClick(View v){

    String data="Hello SecondActivity";

    Intent intent=new
Intent(this,secondactivity.class);

    intent.putExtra("extra_data",data);

    startActivityForResult(intent,1);

  }

重写onActivityResult()方法

  switch(requestCode){

    case 1:

      if (resultCode==RESULT_OK){

        String returnedData=data.getStringExtra("data_return");

      }

      break;

    default:

  }

第二活动

  public void onClick(View v){
    Intent intent=new
Intent();

    intent.putExtra("data_return","Hello FirstActivity");

    setResult(RESULT_OK,intent);

    finish();

  }

kotlin:

第一活动

  fun change(v:View?){
    val data="hello secondactivity";
    val intent=Intent(this,secondactivity::class.java);
    intent.putExtra("extra_data",data);
    startActivityForResult(intent,1);
  }

  override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    when(requestCode){
    1 -> Toast.makeText(this,data!!.getStringExtra("data_return"),Toast.LENGTH_LONG).show();
    }
    super.onActivityResult(requestCode, resultCode, data)
  }

第二活动

  fun back(v: View?){
    val intent=intent.putExtra("data_return","Hello FirstActivity");
    setResult(Activity.RESULT_OK,intent);
    finish();
  }

七、数据保存

java:

重写onSaveInstanceState()

  void onSaveInstanceState(Bundle outState) {
  super.onSaveInstanceState(outState)

  String tempData="Something you just typed";
  outState.putString("data_key",tempData);
}

改onCreate()

  if (savedInstanceState!=null){
    String tempData=savedInstanceState.getString("data_key");
  }

kotlin:

  override fun onSaveInstanceState(outState: Bundle?, outPersistentState: PersistableBundle?) {
    super.onSaveInstanceState(outState, outPersistentState)
    val tempData="Something you just typed";
    outState!!.putString("data_key",tempData);
  }

onCreate()

  if (savedInstanceState!=null){
  val tempData=savedInstanceState.getString("data_key");
  }

时间: 2024-10-12 04:55:00

kotlin编《第一行代码》(1)的相关文章

第一行代码:以太坊(3)-使用更多的工具编写和测试智能合约

<第一行代码:以太坊>开始连载了 在上文中已经使用了Remix环境运行和测试了本书编写的第一个智能合约程序,不过编写和测试智能合约的测试方式很多,例如,在testrpc环境测试:在Intellij IDEA集成开发环境中用Solidity语言编写智能合约:在纯Web环境中测试智能合约:使用AJAX方式测试智能合约等.本文将详细介绍这些用于编写和测试智能合约的方法. 1.安装本地remix环境(Windows.Mac OS X和Linux) 在本节使用Remix环境运行和测试了Calc智能合约,

跟刷 《 Android Studio 单刷第一行代码》 记录坑

跟刷系列   Android Studio 单刷第一行代码 原帖地址http://www.cnblogs.com/DebugLife/p/4355687.html 记录自己的失误,也算是个督促自己了. 1. 坑--去除标题栏 在 Activity 的 onCreate()方法中添加 requestWindowFeature(Window.FEATURE_NO_TITLE);

《第一行代码》Android特色开发,基于位置服务,出现的问题

手机GPS定位较慢.精度高.耗电量多,网络定位较快.精度低.耗电量少 当位置精度要求非常高的时候,使用GPS定位:一般情况下,使用网络定位. 按<第一行代码>写了一个定位程序,真机一直没有定位信息输出,但是模拟器上有输出. 最后发现了问题,将手机上的定位模式改为移动网络定位,而不是GPS定位,定位信息会立刻显示出来. 是GPS定位较慢导致的. 还有一点,手机如果有链接WIFI,采用GPS定位可能显示不出来,最好使用数据网络(即手机自己的网)定位.

HTML5&CSS3初学者指南(1) – 编写第一行代码

介绍 网络时代已经到来.现在对人们来说,每天上网冲浪已经成为一种最为常见的行为. 在网页浏览器中输入一段文本地址,就像http://www.codeproject.com,等待一下,网页就加载到浏览器窗口中.一个典型的网页是由文本.图像和链接组成的.除去内容上的差异,不同网站的网页也具有不同的外观和感受,以实现在网络上建立自己的身份品牌的目的. 如果你也曾想要了解你屏幕上的这些网页是如何被创建出并以各式各样的方式渲染的,那么这里正是你可以了解到这些知识的地方.让我们一起走进在浏览器中创建了这么多

安卓模拟聊天界面---改编第一行代码

主界面 <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:

Android开发——《第一行代码》自学中

大学时候学过C++,Java,算法,数据结构以及其他很多东西,但都学的不精.就要毕业照工作了,总要专注于一门技术,于是开始学安卓. 开发环境是在慕课网下的eclipse. <第一行代码>这本书我也才只看了不到一半,学到第五章广播,但犯过很多错误,抛出来嘲笑下以前的自己,大家引以为戒. 1 有安卓手机就不要用模拟器 由于各种教程都在使用安卓模拟器,导致我一开始学习也在用.但这个实在是很麻烦,我的电脑本来就是渣配置,模拟器开机就要等一年,开机后点个按钮都要等半天.而且经常卡的我的eclipse都不

第一行代码----android篇1.0:活动

   做.NET有4年了,最近由于个人兴趣开始学习Android,网上看了下,郭霖老师的”第一行代码“不错,就以此为教程,写个博客,希望共勉吧!   1:活动是什么及其基本用法    活动是什么,英文名称是“Activity”,专业定义是“一种可以包含用户界面的组件,主要用于和用户进行交互”.在我看来就是.net中的aspx页面,但又不完全是.    如何建立?    如上图所示,点击上图Browse       点击ok,建立活动.活动建立显示的初始页面如下. 到此,建立活动,其实就是一个类,

《第一行代码——Android》封面诞生记

<第一行代码——Android>已经上市快一个月了,目前销售情况还算良好,也是特别感谢众多朋友的支持.其实一本书如果想要卖的好,除了内容必 须要给力之外,封面的设计也是至关重要的,而本书的封面无疑是在充实的内容之外又披上了一层华丽的外衣.作为作者,其实我的任务就是将内容写好而已,其它 所有相关工作都不是由我负责的.本书封面设计的所有细节都是由陈冰先生一手抓起的,之后他在图灵社区上记录了本书封面的诞生过程.在经过他同意的情况下, 我将这篇文章转到我的博客上,也是让感兴趣的朋友们了解一些不为人知的

第一行代码

今天看打了一篇推荐<第一行代码 Android>(郭霖),是郭大神的, Android:一 简介 框架 已发布的版本 应用特色 开发环境 程序结构 Logcat工具 二 Activity 什么是活动 活动用法 intent与其用法 生命周期:onCreate() onStart() onPause() onStop() onDestory() onRestart() 活动启动模式:standard singleTop singleTask singleInstance 活动集合三 UI控件 常

Android Studio:Unable to add window [email&#160;protected] -- permission denied for this window 第一行代码

学习<第一行代码>的时候,出现的错误. java.lang.RuntimeException: Unable to start receiver com.example.sevenun.littledemo.receiver.ForceOfflineReceiver: android.view.WindowManager$BadTokenException: Unable to add window [email protected] -- permission denied for this