zoukankan      html  css  js  c++  java
  • 调用一个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"
        android:orientation="vertical"
        android:background="@drawable/background7" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/user" />

        <EditText
            android:id="@+id/user"
            android:layout_width="207dp"
            android:layout_height="wrap_content"
            android:hint="" />

        <TextView
           
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/password" />

        <EditText
            android:id="@+id/pwd"
            android:layout_width="203dp"
            android:layout_height="wrap_content"
            android:inputType="textPassword" />

        <TextView
           
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/repass" />

        <EditText
            android:id="@+id/repwd"
            android:layout_width="203dp"
            android:layout_height="wrap_content"
            android:inputType="textPassword" />

       <TextView
           
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/email" />

        <EditText
            android:id="@+id/email"
            android:layout_width="202dp"
            android:layout_height="wrap_content"
            android:hint="" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/button1"
            android:text="@string/title"
        />
    </LinearLayout>

    二:在主活动的Activity中进行信息的处理

    package com.org.bundle_ac;

    import android.os.Bundle;
    import android.app.Activity;
    import android.content.Intent;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;

    public class MainActivity extends Activity {

     @Override
     protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
      
      Button button=(Button)findViewById(R.id.button1);//获取提交按钮
      button.setOnClickListener(new OnClickListener(){

       @Override
       public void onClick(View v) {
        // TODO Auto-generated method stub
        String user=((EditText)findViewById(R.id.user)).getText().toString();//获取输入的用户名
        String pwd=((EditText)findViewById(R.id.pwd)).getText().toString();//获取输入的密码
        String repwd=((EditText)findViewById(R.id.repwd)).getText().toString();//获取输入的确认密码
        String email=((EditText)findViewById(R.id.email)).getText().toString();//获取输入的email地址
        
        if(!"".equals(user)&&!"".equals(pwd)&&!"".equals(email)){//进行判断
         if(!pwd.equals(repwd)){
          //如果两次输入的密码不一次给以提示消息并获得焦点
          Toast.makeText(MainActivity.this, "两次输入的密码不一致,请重新输入!", Toast.LENGTH_SHORT).show();
          ((EditText)findViewById(R.id.pwd)).setText("");//清空密码编辑框
          ((EditText)findViewById(R.id.repwd)).setText("");//清空确认密码编辑框
          ((EditText)findViewById(R.id.pwd)).requestFocus();//让密码编辑框获得焦点
         }else{
          //将输入的信息保存的到Bundle中,并开启一个新的Activity显示输入的用户注册信息
          Intent intent=new Intent(MainActivity.this,RegisterActivity.class);//
          Bundle bundle=new Bundle();//创建并实例化一个Bundle对象
          bundle.putCharSequence("user", user);//保存用户名
          bundle.putCharSequence("pwd", pwd);//保存密码
          bundle.putCharSequence("email", email);//保存email地址
          intent.putExtras(bundle);//将Bundle对象添加到Intent对象中
          startActivity(intent);//启新的Activity
         }
        }else{
         Toast.makeText(MainActivity.this, "请将注册信息输入完整!", Toast.LENGTH_SHORT).show();
        }
       }//
       
      });
     }

     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu; this adds items to the action bar if it is present.
      getMenuInflater().inflate(R.menu.main, menu);
      return true;
     }

    }

    三:在layout目录下创建名为register.xml的文件

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:background="@drawable/background7">


        <TextView
            android:id="@+id/textView1"
            android:layout_width="210dp"
            android:layout_height="30dp"
            android:text="@string/user" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="210dp"
            android:layout_height="30dp"
            android:text="@string/password" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="210dp"
            android:layout_height="30dp"
            android:text="@string/email" />

    </LinearLayout>

    四:创建一个RegisterActivity类,并进行信息的接收工作

    package com.org.bundle_ac;

    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.widget.TextView;

    public class RegisterActivity extends Activity {

     @Override
     protected void onCreate(Bundle savedInstanceState) {
      // TODO Auto-generated method stub
      super.onCreate(savedInstanceState);
      setContentView(R.layout.register);//设置该Activity要显示的内容视图
      
      Intent intent=getIntent();//获取Intent对象
      Bundle bundle=intent.getExtras();//获取传递的数据包
      TextView user=(TextView)findViewById(R.id.textView1);//获取到显示用户名的TextView组件
      user.setText("用户名:"+bundle.getString("user"));//获取输入的用户名并显示到TextView组件中
      TextView pwd=(TextView)findViewById(R.id.textView2);//获取到显示密码的TextView组件
      pwd.setText("密码:"+bundle.getString("pwd"));//获取输入的密码并显示到TextView组件中
      TextView email=(TextView)findViewById(R.id.textView3);//获取到显示email的TextView组件
      email.setText("E-mail:"+bundle.getString("email"));//获取输入的email并显示到TextView组件中
     }

    }

    五:在AndroidManifest.xml文件中加入配置Activity的信息

    <activity
                android:name=".RegisterActivity"
                android:label="@string/title"
                android:icon="@drawable/p1"
                ></activity>

    六:string的文件下的

          字符串的配置

    <?xml version="1.0" encoding="utf-8"?>
    <resources>

        <string name="app_name">Bundle_Ac</string>
        <string name="action_settings">Settings</string>
        <string name="hello_world">Hello world!</string>
        <string name="user">用户名:</string>
        <string name="password">密码:</string>
        <string name="repass">确认密码:</string>
        <string name="email">Email地址:</string>
        <string name="button1">提交</string>
        <string name="title">提交</string>
    </resources>

    最后加入背景图片:

      

     只要改一下上面的代码就可以得到被调用的Activity的值

     一;在MainActivity里面定义常量

     private final int CODE=0x717;//定义一个请求的常量

    二:startActivityForResult(intent,CODE);//启新的Activity

      注意不在使用startActivity启动新的Activity了

    三:在register.xml文件里面加入一个button的按钮组件

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

    四:为返回的按钮添加事件监听

    Button button=(Button)findViewById(R.id.back);//获取到返回上一步的按钮
      button.setOnClickListener(new OnClickListener(){

       @Override
       public void onClick(View arg0) {
        // TODO Auto-generated method stub
        setResult(0x717,intent);//设置返回的结果码,并返回调用该Activity的Activity
        finish();//关闭当前Activity
       }
       
      });

    五:再次打开MainActivity,重写onActivityResult方法

     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
      // TODO Auto-generated method stub
      super.onActivityResult(requestCode, resultCode, data);
      if(requestCode==CODE&&resultCode==CODE){
       ((EditText)findViewById(R.id.pwd)).setText("");//清空密码编辑框
       ((EditText)findViewById(R.id.repwd)).setText("");//清空确认密码编辑框
      }
     }

     这样就可以根据返回的结果常量来对进行相应的操作了

  • 相关阅读:
    leetcode--Different Ways to Add Parentheses
    C++调用SQLServer存储过程
    用IdHTTPServer搞个简单的WEB服务器下载文件
    php pdo调用SQLServer存储过程无法获取返回结果
    SQL Server Profiler 跟踪远程服务器的语句
    Delphi格式化函数Format、FormatDateTime和FormatFloat详解
    单独编译某个pas文件
    SQLServer OpenRowSet 导入数据
    模仿QQ气泡聊天
    升级到XE10
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3202798.html
Copyright © 2011-2022 走看看