android使用Activity

第一个例子,显示网址

首先创建工程


按照提示填入

我使用的是2.3版本,所以Min SDK Version填10

修改/res/layout/下main.xml文件

加入按钮


对应的程序文件如下:

 <Button android:layout_height="wrap_content"
 android:layout_width="wrap_content" android:text="@string/showurl"
 android:id="@+id/submit_to_net"></Button>

这样就在页面上绘制了一个按钮,然后给按钮添加事件,就是点击后做什么

我的类信息是ActivityUse,这个类继承自Activity

文件中程序如下:

public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);

 submit_data_tonewactivity();

 }

private void submit_data_tonewactivity() {
 Button button_start_browser = (Button) findViewById(R.id.submit_to_net);

 button_start_browser.setOnClickListener(new OnClickListener() {

 public void onClick(View v) {
 Uri myUri = Uri.parse("http://www.baidu.com");
 Intent openBrowseIntent = new Intent(Intent.ACTION_VIEW, myUri);
 startActivity(openBrowseIntent);
 }
 });

 }

看这几句

Uri myUri = Uri.parse("http://www.baidu.com");
Intent openBrowseIntent = new Intent(Intent.ACTION_VIEW, myUri);
startActivity(openBrowseIntent);

Intent是用于多个Activity之间进行跳转的,Activity可以理解成web开发中的form.

程序调用浏览器,显示网址。


第二个例子,跳转页面并提交数据

用刚才建好的工程

复制一个main.xml并且更名为welcome.xml


配置界面如下,并且在main.xml中加入文本框和登陆按钮

welcome.xml中设置如下,需要对应修改配置属性 并在main.xml中加入如下设置


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical" android:layout_width="fill_parent"
 android:layout_height="fill_parent">
 <EditText android:text="请输入..." android:layout_height="wrap_content"
 android:layout_width="match_parent" android:id="@+id/logintext"></EditText>
 <Button android:layout_height="wrap_content"
 android:layout_width="wrap_content" android:text="@string/exit"
 android:id="@+id/btnexit"></Button>
</LinearLayout>


<EditText android:text="请输入..." android:layout_height="wrap_content"
 android:layout_width="match_parent" android:id="@+id/name"></EditText>
 <TextView android:text="TextView" android:id="@+id/result"
 android:layout_width="fill_parent" android:layout_height="wrap_content"></TextView>

 <LinearLayout android:layout_height="wrap_content"
 android:layout_width="match_parent" android:id="@+id/linearLayout1">
 <Button android:layout_height="wrap_content"
 android:layout_width="wrap_content" android:text="@string/showurl"
 android:id="@+id/submit_to_net"></Button>
 <Button android:layout_height="wrap_content"
 android:layout_width="wrap_content" android:text="@string/show_login_name"
 android:id="@+id/show_login"></Button>
 <Button android:layout_height="wrap_content"
 android:layout_width="wrap_content" android:text="@string/show_loginname"
 android:id="@+id/submit_to_showloginname"></Button>
 </LinearLayout>


Activity,需要在AndroidManifest.xml中添加设置


<activity android:name=".Welcome" android:label="welcome"></activity>


Welcome.java类

public class Welcome extends Activity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 // TODO Auto-generated method stub
 super.onCreate(savedInstanceState);
 setContentView(R.layout.welcome);
 Bundle myBundleForGetName = this.getIntent().getExtras();
 String name = myBundleForGetName.getString("key_name");
 final EditText resultName = (EditText) findViewById(R.id.logintext);
 resultName.setText("欢迎你" + name);
 click_button();
 }

 private void click_button() {
 final Button btnExit = (Button) findViewById(R.id.btnexit);
 btnExit.setOnClickListener(btnexit_listener);
 }
 //返回到main页
 private Button.OnClickListener btnexit_listener = new Button.OnClickListener() {
 public void onClick(View v) {
 Intent main = new Intent();
 main.setClass(Welcome.this, ActivityUse.class);
 startActivity(main);
 }
 };

}

private void submit_data_tonewactivity() {
 final EditText inName = (EditText) findViewById(R.id.name);
 final TextView result = (TextView) findViewById(R.id.result);
 Button button_start_browser = (Button) findViewById(R.id.submit_to_net);
 Button button_login = (Button) findViewById(R.id.show_login);
 Button button_showLoginName = (Button) findViewById(R.id.submit_to_showloginname);

 button_start_browser.setOnClickListener(new OnClickListener() {

 public void onClick(View v) {
 Uri myUri = Uri.parse("http://www.baidu.com");
 Intent openBrowseIntent = new Intent(Intent.ACTION_VIEW, myUri);
 startActivity(openBrowseIntent);
 }
 });

 button_login.setOnClickListener(new OnClickListener() {

 public void onClick(View v) {
 // 接受数据
 Intent openWelcomeActivityIntent = new Intent();
 Bundle myBundelForName = new Bundle();
 myBundelForName.putString("key_name", inName.getText()
 .toString());
 openWelcomeActivityIntent.putExtras(myBundelForName);
 openWelcomeActivityIntent.setClass(ActivityUse.this,
 Welcome.class);
 startActivity(openWelcomeActivityIntent);
 }
 });

 button_showLoginName.setOnClickListener(new OnClickListener() {

 public void onClick(View v) {
 result.setText(inName.getText() + "欢迎您进入......");
 }
 });
 }




注意这几句

// 接受数据
Intent openWelcomeActivityIntent = new Intent();
Bundle myBundelForName = new Bundle();
myBundelForName.putString("key_name", inName.getText()
.toString());
openWelcomeActivityIntent.putExtras(myBundelForName);
openWelcomeActivityIntent.setClass(ActivityUse.this,
Welcome.class);
startActivity(openWelcomeActivityIntent);

新用到了Bundle,这个是在对个Activity之间传递数据用的,这个例子中将信息放入的方法是putExtras

在接受端,即Welcome.java中

 Bundle myBundleForGetName = this.getIntent().getExtras();
String name = myBundleForGetName.getString("key_name");
final EditText resultName = (EditText) findViewById(R.id.logintext);
resultName.setText("欢迎你" + name);

接收数据并显示,同样的方法可以传递多个值

页面样例如下:

输入111,点击登陆



跳转后的页面如下:



点击退出可以返回原页面



第三个例子,跳转页面并且得到返回值

还是用刚才的工程

加入login.xml,和Login.java文件

并在AndroidManifest.xml指定


<application android:icon="@drawable/icon" android:label="@string/app_name">
 <activity android:name=".ActivityUse"
 android:label="@string/app_name">
 <intent-filter>
 <action android:name="android.intent.action.MAIN" />
 <category android:name="android.intent.category.LAUNCHER" />
 </intent-filter>
 </activity>

 <activity android:name=".Welcome" android:label="welcome"></activity>
 <activity android:name=".Login" android:label="login"></activity>

 </application>




添加的登陆页面效果

使用的是TableLayout



login.xml中信息

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical" android:layout_width="fill_parent"
 android:layout_height="fill_parent">
 <TableLayout android:layout_height="wrap_content"
 android:layout_width="match_parent" android:id="@+id/tableLayout1">
 <TableRow android:layout_height="wrap_content"
 android:layout_width="match_parent" android:id="@+id/tableRow1">
 <TextView android:text="用户名" android:id="@+id/txtName"
 android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
 <EditText android:text="" android:id="@+id/tname"
 android:layout_width="200px" android:layout_height="wrap_content"></EditText>
 </TableRow>
 <TableRow android:layout_height="wrap_content"
 android:layout_width="match_parent" android:id="@+id/tableRow1">
 <TextView android:text="密 码" android:id="@+id/txtPass"
 android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
 <EditText android:text="" android:id="@+id/tpass"
 android:layout_width="200px" android:layout_height="wrap_content"></EditText>
 </TableRow>
 </TableLayout>
 <LinearLayout android:layout_height="wrap_content"
 android:layout_width="match_parent" android:id="@+id/linearLayout1">
 <Button android:text="登陆" android:id="@+id/btnLogin"
 android:layout_width="115px" android:layout_height="wrap_content"></Button>
 <Button android:text="取消" android:id="@+id/btnExit"
 android:layout_width="115px" android:layout_height="wrap_content"></Button>
 </LinearLayout>

</LinearLayout>




Login.java中信息


public class Login extends Activity {

 /*
 * (non-Javadoc)
 *
 * @see android.app.Activity#onCreate(android.os.Bundle)
 */
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 // TODO Auto-generated method stub
 super.onCreate(savedInstanceState);
 setContentView(R.layout.login);

 Button btnLogin = (Button) findViewById(R.id.btnLogin);
 Button btnExit = (Button) findViewById(R.id.btnExit);

 // 取值
 final EditText etName = (EditText) this.findViewById(R.id.tname);
 final EditText etPass = (EditText) this.findViewById(R.id.tpass);

 btnLogin.setOnClickListener(new OnClickListener() {

 public void onClick(View v) {
 Intent backIntent = new Intent();
 Bundle stringBundle = new Bundle();
 stringBundle.putString("loginName", etName.getText().toString());
 stringBundle.putString("logPass", etPass.getText().toString());
 backIntent.putExtras(stringBundle);
 setResult(RESULT_OK, backIntent);
 finish();
 }
 });

 btnExit.setOnClickListener(new OnClickListener() {

 public void onClick(View v) {
 Intent backIntent = new Intent();
 setResult(RESULT_CANCELED, backIntent);
 finish();
 }
 });
 }

}




修改main.xml,增加 同时修改ActivityUse.java,并且加入get_returnvalue();函数 接受返回值通过重写


<LinearLayout android:orientation="vertical"
 android:layout_height="wrap_content" android:layout_width="match_parent"
 android:id="@+id/linearLayout2">
 <TextView android:text="返回的内容显示" android:id="@+id/textViewReturn"
 android:layout_width="fill_parent" android:layout_height="48px"></TextView>
 <Button android:layout_height="wrap_content"
 android:layout_width="wrap_content" android:text="@string/get_returnvalue"
 android:id="@+id/btnReturn"></Button>
 </LinearLayout>


private void get_returnvalue() {
 Button btnReturn = (Button) findViewById(R.id.btnReturn);
 tv = (TextView) this.findViewById(R.id.textViewReturn);

 btnReturn.setOnClickListener(new OnClickListener() {

 public void onClick(View v) {
 Intent toNextInt = new Intent();
 toNextInt.setClass(ActivityUse.this, Login.class);
 startActivityForResult(toNextInt, REQUESR_ASK);
 }
 });
 }

 /*
 * 通过重载这个方法,得到返回的结果 requestCode 开启请求Intent时对应的请求码 resultCode 返回的结果验证码 data
 * 返回的Intent
 *
 * @see android.app.Activity#onActivityResult(int, int,
 * android.content.Intent)
 */
 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
 // TODO Auto-generated method stub
 super.onActivityResult(requestCode, resultCode, data);
 if (requestCode == REQUESR_ASK) {
 if (resultCode == RESULT_CANCELED) {
 setTitle("cancel......");
 } else if (resultCode == RESULT_OK) {
 showBundle = data.getExtras();// 得到返回的包
 name = showBundle.getString("loginName");
 pass = showBundle.getString("logPass");
 tv.setText("您的用户名是 " + name + " 您的密码是 " + pass);
 }
 }
 }




需要在ActivityUse中加入,这个是设置请求,REQUESR_ASK可以设定任何值

Intent toNextInt = new Intent();
toNextInt.setClass(ActivityUse.this, Login.class);
startActivityForResult(toNextInt, REQUESR_ASK);

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)

在login.java端可以取值并返回

Intent backIntent = new Intent();
Bundle stringBundle = new Bundle();
stringBundle.putString("loginName", etName.getText().toString());
stringBundle.putString("logPass", etPass.getText().toString());
backIntent.putExtras(stringBundle);
setResult(RESULT_OK, backIntent);

Run一下看下结果



点击“得到返回的数据”按钮



输入信息并点击登陆



返回的结果为刚才输入的结果。


时间: 2024-11-03 16:13:57

android使用Activity的相关文章

Android的Activity和Intent

一个Android应用程序中一般都有不止一个的Activity,这多个Activity之间 要相互通信和传递数据或者从一个Activity跳转到另一个Activity.这样才能使 得一个应用程序可以有丰富的功能和多元化的界面. Activity传递数据和相互跳转需要用到Intent对象.Intent在Android程序中 有很多的用途.我们现在主要关注它在两个Activity之间通信所起的作用.简单 地说Intent就是Android对象提供的Activity之间传递数据和操作指令的载体. In

【Android】Activity的四种launchMode

转自:http://blog.csdn.net/liuhe688/article/details/6754323 合抱之木,生於毫末:九層之台,起於累土:千里之行,始於足下.<老子> 今天在社区看到有朋友问"如何在半年内成为顶级架构师",有网友道"关灯睡觉,不用半年的...",的确,做梦还来的快一些.作为一个程序员,树立远大的目标是值得欣赏的,但不能只去空想,要一步一步地实践才行.成大事者,须从小事做起:万事起于忽微,量变引起质变. 我们今天要讲的是Ac

android的activity布局里如何实现一块固定区域用来显示错误提示信息?

问题描述 android的activity布局里如何实现一块固定区域用来显示错误提示信息? android的activity布局里如何实现一块固定区域用来显示错误提示信息?而不是用toast单出框的效果 解决方案 封装一个布局,在基类里面,就像是标题栏中的布局一样啊,错误信息的时候就显示出来啊 解决方案二: 也可以自己定义一个activity,你的所有activity都继承这个activity,然后动态生成控件,将错误信息add到当前布局中 解决方案三: 最简单的方法,直接放置一个textvie

android的activity跳转到另一个activity_Android

开发环境:android4.1.1 实验功能:在第一个Hello World!为标签的activity中显示good,该界面中有一个名为Next的按钮.点击Next按钮进入到第二个activity中去,第二个界面中只有1个Close按钮.当然,据网上有人将要比较安全的实现关闭程序的功能也不是挺简单的,因为android有专门的退出键返回键等.所以该Close按钮暂时没去实现它.我的第1个activity为HelloworldActivity,第2个activity为NextActivity. 实

Android开发 Activity和Fragment详解_Android

1.Activity的生命周期 1)多个Activity组成Activity栈,当前活动位于栈顶.我们先来看看各种Activity基类的类图: 当Activity类定义出来之后,这个Activity何时被实例化.它所包含的方法何时被调用,这些都不是由开发者所决定的,都应该由Android系统来决定. 下面我们来看一下Activity的生命周期: 2.Activity的用法 1)启动.关闭Activity // 首先需要创建启动的Activity对应的Intent Intent intent =

Android 启动activity的4种方式及打开其他应用的activity的坑_Android

Android启动的四种方式分别为standard,singleTop,singleTask,singleInstence. standard是最常见的activity启动方式,也是默认的启动的方式.当启动一个activity的时候他将进入返回栈的栈顶.系统不会管栈内是否有相同的activity,方式像后入先出. singleTop方式是在活动启动的时候,系统先判定栈顶是否有相同的活动,如果没有则新建活动,否则将不新建活动.而是直接使用他. singleTask方式在活动启动的时候,系统先判定栈

值传递-Android 同一个activity中传递值

问题描述 Android 同一个activity中传递值 在同一activity中传递值,在网友的帮助下认识到如下的存取值方法 public static class HealthMap { private static Map map = new ConcurrentHashMap(); /** * 传值 * @param key * @param obj */ public static void put(String key, Object obj) { map.put(key, obj)

Android中Activity启动模式详解,可以控制程序按home键后进来还会调用一个自己不喜欢的界面

其实这是很简单的一个问题.但是这还是要对android中activity的启动模式有相当的理解才行,当点击home键的时候,懂Android的人都知道,他会把当前activity放到后退栈中, 栈(Stack)又称堆栈,它是一种运算受限的线性表,其限制是仅允许在表的一端进行插入和删除运算.人们把此端称为栈顶,栈顶的第一个元素被称为栈顶元素,相对地,把另一端称为栈底.向一个栈插入新元素又称为进栈或入栈,它是把该元素放到栈顶元素的上面,使之成为新的栈顶元素:从一个栈删除元素又称为出栈或退栈,它是把栈

界面-Android 从activity跳转进入另一个activity内viewpager的指定页面

问题描述 Android 从activity跳转进入另一个activity内viewpager的指定页面 求助: 现在的需求是, 要从activityA跳转进入另一个activityB内viewpager的第4个界面 (activityB一共有4个fragment组成viewpager) 注:看清需求,不是activityA跳转到activityB,而是要跳转到activityB内部viewpager里面的一个指定页面 解决方案 直接在activityB中设置viewPager.setCurre

Android将Activity打成jar包供第三方调用(解决资源文件不能打包的问题)

最近有一个需要,我们公司做了一个apk客户端,然后其他的公司可以根据自己的需要来替换里面的资源图片,文字等一些资源文件问题,我本来想这个简单,用两个工程直接替换里面的资源文件就行,老大说,这样子不好,如果要改需要改两个客户端,而且还麻烦,叫我将所有的Activity打成Jar包的形式,这样子我们改了里面的内容就直接发布Jar包出去,其他公司直接下载Jar来使用,这样子他们自己公司也能更好的维护. 所以我就想直接将Activity打成Jar包,可是在使用的过程中发现这样子根本行不通,因为如果Act