文档章节

android之有返回结果跳转intent

 我的梦想fly
发布于 2014/12/06 19:37
字数 772
阅读 10
收藏 0

android之有返回结果跳转intent:

(1、注意跳转的时候要传像user的对象必须实现Serializable接口,2、login的java代码中setResult(RESULT_OK, intent);后一定要调用finish()方法

主页面布局:layout/activity_main.xml:

<RelativeLayout 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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.sxt.main.MainActivity" >
<Button 
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:id="@+id/btLogin"
   android:text="登陆"/>
<Button
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_below="@id/btLogin"
   android:id="@+id/btRegister"
   android:text="注册"/>

</RelativeLayout>
   主页面布局java代码:

package com.sxt.main;


import android.support.v7.app.ActionBarActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.Toast;


public class MainActivity extends ActionBarActivity {
private static final  int LOGINCODE = 0;
private static final int  REGISTER = 10;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setlistener();
}


private void setlistener() {
// TODO Auto-generated method stub
findViewById(R.id.btLogin).setOnClickListener(new OnClickListener() {

@Override
public void onClick(View view) {
// TODO Auto-generated method stub
Intent intent = new Intent(MainActivity.this,LoginActivity.class);
startActivityForResult(intent, LOGINCODE);
}
});
}


//这是跳转到另一个布局页面返回来的操作
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(resultCode!=RESULT_OK){
return;
}
switch (requestCode) {
case LOGINCODE:
User user = (User) data.getSerializableExtra("user");
Log.i("main", "注册信息是:"+user);
Toast.makeText(this,"注册信息是:"+user, 50000).show();
break;
case REGISTER:

break;
}
}






}


跳转到的登陆注册页面布局:

登陆页面布局:layout/activity_login.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"
    android:orientation="vertical">
<LinearLayout 
      android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
<TextView 
    android:layout_width="wrap_content"
   android:layout_height="wrap_content"
  android:text="编号"/>
    
<EditText 
    android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:id="@+id/etUser"
   android:hint="请输入1-10个字符"
   />

</LinearLayout>
    <LinearLayout 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal">
<TextView 
    android:layout_width="wrap_content"
   android:layout_height="wrap_content"
  android:text="密码"/>
    
<EditText 
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:id="@+id/etPassword"
   android:hint="请输入1-10个字符"
   android:password="true"/>

</LinearLayout>
  <LinearLayout 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

<Button 
    android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:visibility="invisible"
            />
            <Button 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/register"
                android:text="登陆"
                android:drawableLeft="@drawable/login32x32"
                android:background="@drawable/btn_bg"/>
            <Button 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                  android:visibility="invisible"
              />
            <Button 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/exit"
                 android:drawableLeft="@drawable/exit32x32"
                android:background="@drawable/btn_bg"
                android:text="退出"/>
            <Button 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                  android:visibility="invisible"
              />
</LinearLayout>
</LinearLayout>

跳转到的登陆注册的java代码:

package com.sxt.main;


import android.support.v7.app.ActionBarActivity;
import android.text.TextUtils;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;


public class LoginActivity extends ActionBarActivity {
private EditText etUser,etPassword;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
init();
setListener();
}


private void setListener() {
// TODO Auto-generated method stub
findViewById(R.id.register).setOnClickListener(new OnClickListener() {

@Override
public void onClick(View view) {
// TODO Auto-generated method stub
String code = etUser.getText().toString();
if(TextUtils.isEmpty(code)){
etUser.setError("编号不能为空");
return;
}
String passw = etPassword.getText().toString();
if(TextUtils.isEmpty(passw)){
etPassword.setError("密码不能为空");
return;
}
Intent intent = new Intent(LoginActivity.this,MainActivity.class);
intent.putExtra("user", new User(code,passw));
setResult(RESULT_OK, intent);
finish();
}
});
findViewById(R.id.exit).setOnClickListener(new OnClickListener() {

@Override
public void onClick(View view) {
// TODO Auto-generated method stub
finish();
}
});
}


private void init() {
// TODO Auto-generated method stub
etUser = (EditText) findViewById(R.id.etUser);
etPassword = (EditText) findViewById(R.id.etPassword);

}
}

实体类User:

package com.sxt.main;


import java.io.Serializable;


public class User implements Serializable{
private String code;
private String password;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public User(String code, String password) {
super();
this.code = code;
this.password = password;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return this.code+","+this.password;
}

}

效果:

第一步点击登陆:


第二步填写信息:


第3步登陆成功返回到原来的布局页面:



© 著作权归作者所有

共有 人打赏支持
粉丝 1
博文 43
码字总数 20377
作品 0
西城
私信 提问
Android之Activity的几种跳转方式

1.显示调用方法 Intent intent=new Intent(this,OtherActivity.class); //方法1 Intent intent2=new Intent(); intent2.setClass(this, OtherActivity.class);//方法2 intent2.setClassName(......

Airship
2015/03/27
0
0
深入理解 intent (1)

一. 使用Internt 连接activity 1.创建 intent 用下面的构造方法 Intent.Intent(Context packgeContext ,Class <?> cls ); 或者先构造 一个未指向 的intent,再用下面方法 Intent.getClass(Co......

chuiyuan
2014/05/11
0
0
Android startActivity()和onActivityResult()使用总结

有三个Activity: A.java ,B.java ,C.java Activity之间的跳转常用方法: 1. startActivity(Intent intent); 该方法只用于启动新的Activity 2.startActivityForResult(Intent intent, int re......

mengyrlind
2014/09/10
0
0
Flutter-Android开发者文档 -Intent

此文章为翻译Flutter官网的Flutter for Android Developers - Intent有兴趣的小伙伴可以移步官网查看。 Intent Flutter中的Intent是什么? 在Android中,Intent主要有两大使用方式:Activit...

AllAboutCoding
2018/06/26
0
0
Android Intent实现页面跳转

什么是Intent Intent可以理解为信使(意图) 由Intent来协作完成Android各个组件之间的通讯, 也可以说是实现页面与页面之间的跳转 Intent实现页面之间的跳转 startActivity(intent) //第一种方...

carry莫奈
02/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

容器服务

简介 容器服务提供高性能可伸缩的容器应用管理服务,支持用 Docker 和 Kubernetes 进行容器化应用的生命周期管理,提供多种应用发布方式和持续交付能力并支持微服务架构。 产品架构 容器服务...

狼王黄师傅
昨天
3
0
高性能应用缓存设计方案

为什么 不管是刻意或者偶尔看其他大神或者大师在讨论高性能架构时,自己都是认真的去看缓存是怎么用呢?认认真真的看完发现缓存这一块他们说的都是一个WebApp或者服务的缓存结构或者缓存实现...

呼呼南风
昨天
12
0
寻找一种易于理解的一致性算法(扩展版)

摘要 Raft 是一种为了管理复制日志的一致性算法。它提供了和 Paxos 算法相同的功能和性能,但是它的算法结构和 Paxos 不同,使得 Raft 算法更加容易理解并且更容易构建实际的系统。为了提升可...

Tiny熊
昨天
3
0
聊聊GarbageCollectionNotificationInfo

序 本文主要研究一下GarbageCollectionNotificationInfo CompositeData java.management/javax/management/openmbean/CompositeData.java public interface CompositeData { public Co......

go4it
昨天
3
0
阿里云ECS的1M带宽理解

本文就给大家科普下阿里云ECS的固定1M带宽的含义。 “下行带宽”和“上行带宽” 为了更好的理解,需要先给大家解释个词“下行带宽”和“上行带宽”: 下行带宽:粗略的解释就是下载数据的最大...

echojson
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部