Android 入门学习 二

上一篇已经学习了但见一个简单页面,有输入框,有按钮,但是不能点击,此篇文章将会学习如何进行页面跳转,启动其他的Activity

响应send(发送)按钮

  • 首先创建一个新的Activity DisplayMessageActivity 用来跳转
  • 打开res/layout目录下的activity_my.xml 文件
  • 给 Button 标签添加android:onclick属性(android:onclick 属性的值就是当用户点击你屏幕按钮时触发方法的名字)
代码示例
<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_send"
        android:onClick="sendMessage"/>
  • 在java/com.mycompany.myfirstapp目录下MainActivity.java 文件中添加 sendMessage() 方法,方法名称必须和android:onClick 属性中提供的方法名一致
public void sendMessage(View view){} //view类型,代表被点击的视图

必须满足以下条件:

  1. 是Public函数
  2. 没有返回值
  3. 有唯一的参数
  • sendMessage() 方法

    • Intent : 不同组件中提供运行是连接的对象。Intent 代表一个应用"想去做什么事",你可以用它做各种各
      样的任务,不过大部分的时候他们被用来启动另一个Activity
    • findViewById() : 取得元素
MainActivity代码示例
 public void sendMessage(View view) {
        /**
         * Intent构造函数中有两个参数
         * 1.第一个参数是Context(用 this 是因为当前Activity是 Context 的子类)
         * 2.接收系统发送的Intent的应用组件的class对象(被启动的 DisplayMessageActivity)
         * 3.
         * */
        Intent intent = new Intent(this, DisplayMessageActivity.class);
        //用findViewById()方法得到EditText元素
        EditText editText = findViewById(R.id.edit_message);
        String message = editText.getText().toString();
        /**
         * 1.将EditText 的文本内容关联到本地变量并通过putExtra()方法传值Intent
         * 2.EXTRA_MESSAGE:让新启动的activity能查询,定义key为一个public型的常量,通常使用应用程序
         * 包名作为前缀来定义意图键是很好的做法.在应用程序与其他应用程序进行交互时仍可以确保意图键唯一。
         * 3.Intent 可以携带各种数据类型的集合的key-value附加对,称作extras。 putExtra()方法把键名
         * 作为第一个参数,把值作为第二个参数。
         * */
        intent.putExtra(EXTRA_MESSAGE, message);
        //启动新的activity
        startActivity(intent);
    }

sendMessage()方法完成后需要启动新的Activity 也就是我们之前创建的 DisplayMessageActivity

  • 首先需要得到Intent 并赋值给本地变量
Intent intent = getIntent()
  • 然后将MyActivity 传递过来的文本使用 getStringExtra() 获取
String message = intent.getStringExtra(MyActivity.EXTRA_MESSAGE);
  • 然后创建TextView 对象并赋值
TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText(message);
textView.setTextColor(Color.parseColor("#ff7f50"));
  • 最后通过setContentView() 方法把TextView作为activity布局的根视图
setContentView(textView)
DisplayMessageActivity 代码示例
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_display_message);
        //得到intent 并赋值给本地变量
        Intent intent =getIntent();
        //传递过来的文本使用 getStringExtra()
        String message =intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
        /**
         * setTextSize() 设置文本字体字体大小
         * setText() 设置文本内容
         * setTextColor() 设置字体颜色
         * */
        TextView textView = new TextView(this);
        textView.setTextSize(40);
        textView.setText(message);
        textView.setTextColor(Color.parseColor("#ff7f50"));
        //通过调用activity的setContentView()把TextView作为activity布局的根视图
        setContentView(textView);
    }
运行示例

至此已经学会如何跳转新的Activity

posted @ 2019-06-11 15:25  小小丶刘  阅读(219)  评论(0编辑  收藏  举报
//