[笔记][andriod开发]基本控件和Activity基础
来源:互联网 发布:淘宝上怎么换货啊 编辑:程序博客网 时间:2024/06/05 15:41
【01.05】Activity和Intent
1、多个Activity之间的关系
Activity01------>Activity02
调用Activity01.startActivity(intent)
一个Intent对象包含的信息
- Component name:区分是哪一个Activity
- Action:启动了一个Activity后,采取什么动作
- Data:一个Activity向另外一个Activity传递什么数据
- Extras:额外的变量,是一些键值对,进行交互
- Category
- Flags
例子:(例子写了三遍,各种出错 汗……)
Tips:
要想eclipse在打任何字母都提示,在windows-preferences-java-editor-content assist里有个auto activation trigger for Java,里面写上abcdefghijklmnopqrstuvwxyz.,如果大写字母也想提示,也写上一大串大写字母吧 [´・ω・`]
有些地方会提示出错,点击出错的小标签,会告诉你怎么样纠正这个错误,一般是缺少包引用或者函数名有更改(改朝换代好快[´・ω・`]
用的eclipse4.2.1
api为2.2的
有些地方和视频不太一样
1、创建一个andriod application project,系统自动生成相关文件
2、在activity_main.xml中加上一个按钮文件
< LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"
xmlns:tools= "http://schemas.android.com/tools"
android:layout_width= "match_parent"
android:layout_height= "match_parent" >
< Button
android:layout_width ="fill_parent"
android:layout_height ="wrap_content"
android:id ="@+id/mybutton"
android:text ="@string/clickbutton"
/>
</ LinearLayout>
3、在MainActivity.java中对OnCreate函数进行复写
public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout. activity_main ); mybt = (Button)findViewById(R.id.mybutton); mybt .setOnClickListener( new mybuttonClickListener()); //这是第六步做到的~ }
4、在com.example.activity03包下创建新的文件,new->class,取名为OtherActivity,生成新的文件OtherActivity.java
4.1:
在AndroidMainfest.xml中注册这个Activity
< activity
android:name =".OtherActivity"
android:label ="@string/otheractivity" ></ activity>
4.2:
需要用到的资源先创建,在Layout文件夹下创建对应的布局文件:activity_other.xml,放入一个TextView控件
< LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"
xmlns:tools= "http://schemas.android.com/tools"
android:layout_width= "match_parent"
android:layout_height= "match_parent" >
< TextView
android:layout_width ="fill_parent"
android:layout_height ="wrap_content"
android:id ="@+id/mytextview"
android:text ="@string/otheractivity"
/>
</ LinearLayout>
4.3:回到OtherActivity.java,使这个类继承Activity,并复写OnCreate方法,对TextView进行操作
package com.example.activity03;import android.app.Activity;import android.os.Bundle;import android.widget.*;public class OtherActivity extends Activity { private TextView mytv = null; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout. activity_other ); mytv = (TextView)findViewById(R.id. mytextview); mytv .setText(R.string. otheractivity); }}
5、两个Activity已经准备好了,接下来需要对按钮绑定一个动作,在MainActivity.java的MainActivity函数中添加如下类,创建一个Intent对象,并添加需要跳转的Activity,再从这个Activity启动跳转
class mybuttonClickListener implements android.view.View.OnClickListener{ public void onClick(View arg0) { // TODO Auto-generated method stub Intent intent = new Intent(); intent.setClass( MainActivity. this, OtherActivity.class ); MainActivity. this.startActivity(intent); } }
6、点击动作已经准备好,接下来将这个动作绑定到按钮上
mybt .setOnClickListener( new mybuttonClickListener());
完成~启动~
例子变体:
Intent是可以添加Extra键值对的,记得么~现在要做到的是把一个键值对从MainActivity传递到OtherActivity中
其他不变,回到mybuttonClickListener类中,将一个键值对放入intent里
intent.putExtra( "testIntent" , "here is the value in intent" );
再在OtherActivity中创建一个Intent类的对象,取出这个intent
Intent intent = getIntent();
在OtherActivity的TextView中表现出这个键值
mytv .setText(intent.getStringExtra( "testIntent"));
结果如下:
【01.06】常用控件
1、TextView
2、EditView
3、Button
4、Menu
还是通过例子来理解吧~目标如图↓
1、创建一个android application project,在主框架中声明四个控件
activity_main.xml
< LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"
xmlns:tools= "http://schemas.android.com/tools"
android:layout_width= "fill_parent"
android:layout_height= "fill_parent" >
<EditText
android:layout_width ="fill_parent"
android:layout_height ="wrap_content"
android:id ="@+id/inputOne" />
<TextView
android:layout_width ="fill_parent"
android:layout_height ="wrap_content"
android:id ="@+id/label"
android:text ="@string/init_word" />
< EditText
android:layout_width ="fill_parent"
android:layout_height ="wrap_content"
android:id ="@+id/inputTwo" />
< Button
android:layout_width ="fill_parent"
android:layout_height ="wrap_content"
android:id ="@+id/showResult"
android:text ="@string/result_button"
/>
</ LinearLayout>
2、创建另外一个Activity,为ResultActivity
2.1:在包com.example.activity04中新建class,命名为ResultActivity.java
2.2:在layout文件夹中新建对应的xml资源文件,命名为result_activity.xml,并放入一个TextView控件用于显示结果
< LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"
xmlns:tools= "http://schemas.android.com/tools"
android:layout_width= "fill_parent"
android:layout_height= "fill_parent" >
<TextView
android:layout_width ="fill_parent"
android:layout_height ="wrap_content"
android:id ="@+id/resultLabel" />
</ LinearLayout>
2.3:在ResultActivity中复写OnCreate方法,初始化Activity和TextView控件
2.4:别忘了在AndroidMainfest.xml中注册ResultActivity
3、回到MainActivity中,初始化四个控件,并创建一个监听器,复写一个菜单的回调函数
package com.example.activity04;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.View;import android.widget.*;public class MainActivity extends Activity { private EditText inputOne = null; private EditText inputTwo = null; private TextView label = null ; private Button showResult = null; @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout. activity_main ); inputOne = (EditText)findViewById(R.id. inputOne); inputTwo = (EditText)findViewById(R.id. inputTwo); label = (TextView)findViewById(R.id. label ); showResult =(Button)findViewById(R.id. showResult); //这个地方是视频里这样写的,但是实际上这样写却会出错ORZ //label.setText(R.string.init_word); //showResult.setText(R.string.result_button); //具体原因是由于我在 xml资源文件中已经写入了相应的text引用,重复的话就会报错 //如果资源文件中控件的android:text对应的string不是以下两项则不会报错 //监听器动作绑定 showResult .setOnClickListener( new CalculateListener()); } //复写菜单键对应方法 @Override public boolean onCreateOptionsMenu(Menu menu) { // TODO Auto-generated method stub //参数为 菜单的组序号、对应按钮的序号、对应按钮的 menu.add(0, 1, 1, R.string. about ); menu.add(0, 2, 2, R.string. exit ); return super .onCreateOptionsMenu(menu); } //对应菜单-退出的方法 @Override public boolean onOptionsItemSelected(MenuItem item) { // TODO Auto-generated method stub if(item.getItemId()==1){ finish(); } return super .onOptionsItemSelected(item); } class CalculateListener implements android.view.View.OnClickListener{ public void onClick(View arg0) { // TODO Auto-generated method stub //取得两个控件的值 String s1 = inputOne .getText().toString(); String s2 = inputTwo .getText().toString(); //将值存放到Intent对象中 Intent intent = new Intent(); intent.putExtra( "one" , s1); intent.putExtra( "two" , s2); //设置intent的activity intent.setClass(MainActivity. this ,ResultActivity. class ); //调用activity的启动动作 MainActivity. this .startActivity(intent); } }}
4、到ResultActivity中,进行Intent对象数据的接受和计算
package com.example.activity04;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.widget.TextView;public class ResultActivity extends Activity { private TextView resultview = null; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super .onCreate(savedInstanceState); setContentView(R.layout. result_activity ); //初始化 Textview resultview = (TextView)findViewById(R.id. resultLabel); //1、接受MainActivity中传递过来的值 Intent intent = getIntent(); String s1 = intent.getStringExtra( "one" ); String s2 = intent.getStringExtra( "two" ); int i1 = Integer.parseInt(s1); int i2 = Integer.parseInt(s2); //2、计算 int r = i1 * i2; //3、显示结果(将 int转换成String~ resultview .setText(r+"" ); }}
大概就是如上,多做几遍就熟练了[´・ω・`]
- [笔记][andriod开发]基本控件和Activity基础
- andriod基本 输出控件
- Andriod学习笔记 Activity
- [笔记][andriod开发]Activity的生命周期、常见布局、常见控件(单选,多选,弹出框,进度条,列表)
- 【Andriod基础】Activity的生命周期
- (004)Andriod基本控件
- Android(二) activity和四个基本控件
- ios开发基础控件笔记
- andriod 开发应用基础1
- andriod 时间和日期控件
- UI开发基础和控件
- IOS开发笔记(7)基本控件
- 【Android基础笔记02】 API Guide学习和常用布局及基本UI控件
- 【Android基础笔记03】 Android RelativeLayout相对布局和基本UI控件
- 【Android基础笔记04】Spinner 和 AutoCompleteTextView 基本适配器控件的使用
- Andriod游戏开发系统控件-RadioButton
- Asp.net控件开发学习笔记(二)-控件开发基础
- Asp.net控件开发学习笔记(三)-控件开发基础
- 数据结构栈的应用
- 基于winsocket的UDP的数据单向通信过程
- C/C++ 内存分配方式,堆区,栈区,new/delete/malloc/free
- 银行系统(1)
- 第11周任务-判断素数(重做)
- [笔记][andriod开发]基本控件和Activity基础
- 单例模式——Singleton
- fibnacci迭代+递归
- 关于HTML5 的canvas
- 一种查找k个最小元素的方法
- IE9 js图片预览 可设定显示出来的图片大小
- a和&a的区别
- win7下安装及配置JDK
- 理解Heap Profling名词-Shallow和Retained Sizes