zoukankan      html  css  js  c++  java
  • Activity

    一:实现不同的Activity的简单跳转

    新建一个新的工程,新建号Maintivity

    实现一个Activity跳转到另一个Activity的关键是先声明好一个新的Activity后,必须在AndroidMainfest上注册对应的Activity,之后我们还得给新的Activity添加一个新的资源文件,跳转Activity我们通过传入Intent来激活Activity

    本例新建一个Next.java的Activity,在新建一个新类的情况下我们可以

    image当然我们在这里选择SuperClass填写的Activity,并且在onCreate方法中一定要通过setContentView(方法来声明当前Activity来显示的资源文件)

    public class Next extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_next);
        }
    }

    在这里我们给Activity添加一个资源文件,actity_next.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" >
    
        <ProgressBar
            android:id="@+id/progressBar1"
            style="?android:attr/progressBarStyleLarge"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
    
    </LinearLayout>

    当然在MainActivity中的资源视图activity_main.xml中添加一个button控件来实现视图的跳转

    在button中我们通过给button添加事件来跳转

    public class MainActivity extends Activity {
        private Button button;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            button=(Button)this.findViewById(R.id.button1);
            button.setOnClickListener(new View.OnClickListener() {
                
                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    Intent intent=new Intent(MainActivity.this,Next.class);
                    startActivity(intent);
                }
            });
        }
    
    
        @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;
        }

    通过不同的Intent构造函数来传递启动Activity

    Intent intent=new Intent("com.example.android.actitys.nextactivity");

    通过这种方式传递构造函数的情况下必须给AndroidMainfest注册的Activity注册Intend-filter中注册action和category

    <activity android:name=".Next">
                <intent-filter >
                    <action android:name="com.example.android.actitys.nextactivity"></action>
                    <category android:name="android.intent.category.DEFAULT"></category>
                </intent-filter>
            </activity>
    Intent intent=new Intent("com.example.android.actitys.nextactivity");
    startActivity(intent);

    二:Activity之间的传值

    主要是通过Intent之间携带值intent.putExtra()方法

                 intent.putExtra("age", "12");
                    intent.putExtra("name", "billy");
                    Bundle bundle=new Bundle();
                    bundle.putString("code", "1120");
                    intent.putExtra("bundle", bundle);
         setContentView(R.layout.activity_next);
            Intent intent=getIntent();
            String name=intent.getStringExtra("name");
            System.out.println("--name->>"+name);
            String age=intent.getStringExtra("age");
            System.out.println("--age->>"+age);
            Bundle bundle=intent.getBundleExtra("bundle");
            String code=bundle.getString("code");
            System.out.println("--code->>"+code);
            textView=(TextView)this.findViewById(R.id.textView1);
            textView.setText(name);

    三:Activity的回传值

    想要在通过子窗体回传值,我们需要在父窗体中通过startActivityForResult(intent, requestCode)启动Activity,还要重写一个方法onActivityResult

    自定义requestcode和resultcode来定义父子窗体来回传

    startActivityForResult(intent, 1000);
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            // TODO Auto-generated method stub
            super.onActivityResult(requestCode, resultCode, data);
            if(requestCode==1000&&resultCode==1001){
                String result=data.getStringExtra("jiegou");
                editText3.setText(result);
                
            }
        }
    button.setOnClickListener(new View.OnClickListener() {
                
                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    String jiegouString=editText.getText().toString().trim();
                    Intent intent1=new Intent();
                    intent1.putExtra("jiegou", jiegouString);
                    setResult(1001, intent1);
                    finish();//结束Activity的生命周期
                }
            });

    四:Activity保存状态

    通过onSaveInstanceState来保存状态

  • 相关阅读:
    eclipse设置
    设计模式-单例模式
    java学习--基础知识阶段性总结--基础面试题
    java学习--基础知识阶段性总结--API、集合
    java学习--基础知识阶段性总结--74条
    React官方文档之React 理念
    React官方文档之组合 vs 继承
    React官方文档之状态提升
    Dynamic HTML权威指南(读书笔记)— 第一章 HTML与XHTML参考
    ExtJs3带条件的分页查询的实现
  • 原文地址:https://www.cnblogs.com/ilooking/p/4203473.html
Copyright © 2011-2022 走看看