Android Activity和Intent

首先是创建新的Activity

例子:

 *new -> java Class -> 命名 此时是一个空的Activity

 *继承Activity      ==    extends Activity

 *重写Activity中的OnCreate方法

 *Alt + Insert  选择 Override Methods   并选择需要继承的方法

 *此时Activity已经建好

 *勿忘!需要将Layout加入,否则无法打开此页面,程序会崩掉。

setContentView(R.layout.activity_main);
 *使用setContextView()方法,将参数填写完整。

 *最后!最后!最后!  在  AndroidManifest.xml中,将新创建的Activity注册一下。


<activity android:name=".qq_login">
 *至此,完成创建Activity工作。

—————————————————我是可爱的分割线—————————————————

其次是在Activity中找到控件

    private Button Btn_cal;
    private Button Btn_main;
    private Button Btn_QQ;


     Btn_cal = (Button)findViewById(R.id.button_calculator);
     Btn_main = (Button)findViewById(R.id.button_main);
     Btn_QQ = (Button)findViewById(R.id.button_QQ);

 可以用一句话写出,并用快捷键直接生成   成员变量。

 快捷键   :    Ctrl + Alt + f 



找到控件之后,给按钮添加事件。

此处使用的是java的GUI编程中的设置监听器。

class ButtonListener implements View.OnClickListener{
        @Override
        public void onClick(View v) {
            Intent intent = new Intent();
            intent.setClass(MainActivity.this,qq_login.class);
            MainActivity.this.startActivity(intent);
        }
    }



格式:  class  方法名   implements  OnClickListener{


 重写 onClick方法.....


}



监听器写完之后,需要将监听器捆绑到按钮上。

Btn_QQ.setOnClickListener(new ButtonListener());
此时,按钮的事件设置完成。





此时,需要使用Intent这个小工具。

Intent是不同Activity之间传值的小船,小船,小船。

也可以是不同app中的Activity传值的小船。

(暂且理解到这里)



使用方法如下:

Intent intent = new Intent();
intent.setClass(MainActivity.this,qq_login.class);
MainActivity.this.startActivity(intent);
 *new一个Intent对象。

 *对象.setClass(这个Activity.this  ,   需要跳转到的Activity);

 *此Activity.this.startActivity(intent);

 *此时就可以跳转到“新的Activity”中了,摁返回键是可以直接返回的。



两个Activity之间互相传值:

此时是借助Intent的Extra方法。

首先:

原Activity:

intent.putExtra("test","test_text");

*注意,使用Extra传值是使用   键-值  对  的方式进行set值。



目标Activity:

Intent intent = getIntent();
String value = intent.getStringExtra("test");

 

 *新建Intent对象,使用getIntent()方法获取,而不是new出来。

 *使用getStringExtra()方法,并将  原Activity中的  “键”  名称写入,即可取出该“值”。

 *到此就可以传值成功了。


Intent  不仅可以同app之间的不同Activity互相传值,也可以不同app之间传值。

例子:

在我的app中调用  短信app  并起草一封短消息

class sendMessage implements View.OnClickListener{
        @Override
        public void onClick(View v) {
            Uri uri = Uri.parse("smsto:10086");
            Intent intent = new Intent(Intent.ACTION_SENDTO,uri);
            intent.putExtra("sms_body","3");
            startActivity(intent);
        }
    }
 使用了intent中的      Intent.ACTION_SENDTO   这一属性,并传进去uri值。

 将Extra设置短信内容     3,。

 最后startActivity即可。



使用Data方法传值还不会,后续更新。











猜你喜欢

转载自blog.csdn.net/qq_35343446/article/details/79235259