1.四大组件之activity重新学习(六小时视频)

intent就是组件和组件之间的跳转,比如说后期的服务等等,都要用到intent

跳转并传值(静态注册)

package com.example.myactivity77;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    EditText userName;
    EditText userPassword ;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        userName = findViewById(R.id.userName);
        userPassword = findViewById(R.id.userPassword);
    }

    public void denglu(View view) {

        String userNameText = userName.getText().toString();
        String userPasswordText = userPassword.getText().toString();

        //设置意图
        Intent intent = new Intent(this,LoginSuccess.class);
        //传值
        intent.putExtra("userName",userNameText);
        intent.putExtra("userPassword",userPasswordText);
        //跳转
        startActivity(intent);
    }
}

接收值

package com.example.myactivity77;

import androidx.appcompat.app.AppCompatActivity;

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

public class LoginSuccess extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login_success);

        TextView textView = findViewById(R.id.text11);
        Intent intent = getIntent();
        String userName = intent.getStringExtra("userName");
        String userPassword = intent.getStringExtra("userPassword");
        textView.setText("用户名+密码:"+userName+" "+userPassword);

    }
}

/****************************************************************************************************************************************************************************************/

Intent和Intent过滤器(组件之间的隐式跳转)

不指定特定的类名,而是声明要执行的常规操作,从而允许其他应用中的组件来处理它

在配置文件中配置意图过滤

<activity
            android:name=".ThirdActivity"
            android:exported="true" >
        
            <intent-filter>
                <action android:name="baga_shit"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        
</activity>
public void tiaozhuan(View view) {
        Intent intent = new Intent();
        intent.setAction("baga_shit");
        intent.addCategory(Intent.CATEGORY_DEFAULT);
        //传值
        String userNameText = userName.getText().toString();
        String userPasswordText = userPassword.getText().toString();
        intent.putExtra("userName",userNameText);
        intent.putExtra("userPassword",userPasswordText);
        startActivity(intent);
    }

/****************************************************************************************************************************************************************************************/

通过显式意图跳转到第三方应用

copy   /**                                                                                                                                                              
    * 这个方法会在点击按钮的时候执行                                                                                                                                               
    * @param view                                                                                                                                                   
    */                                                                                                                                                              
                                                                                                                                                                    
   public void skip2Browser(View view){                                                                                                                             
                                                                                                                                                                    
       Log.d(TAG,"skp2Browser");                                                                                                                                    
       Intent intent =new Intent();                                                                                                                                 
       /**                                                                                                                                                          
        * 組件的名称,也就是ComponentName =包名/类的路径名称,如包名一直,类的路径名称可以省略包名                                                                                                      
        * 如:com.google.android.as/com.google.android.apps.miphone.aiai.app.AiAiPredictionService                                                                    
        */                                                                                                                                                          
       //第一种写法                                                                                                                                                      
       // intent.setClassName("com.google.android.as","com.google.android.apps.miphone.aiai.app.AiAiPredictionService");                                            
                                                                                                                                                                    
        //第二种写法                                                                                                                                                     
       ComponentName  componentName=new ComponentName("com.google.android.as","com.google.android.apps.miphone.aiai.app.AiAiPredictionService");                    
       intent.setComponent(componentName);                                                                                                                          
                                                                                                                                                                    
       startActivity(intent);                                                                                                                                       
   }

 

通过隐式意图跳转到第三方应用

copy /**                                                               
  * 下面通过隐式意图来跳转到第三方应用                                              
  * 1、创建Intent对象                                                   
  * 2、第二步给intent对象,设置Action、category,5.1以上要设置包名                    
  * 3、startActivity(intent)                                        
  * @param view                                                    
  */                                                               
     public void skip2BrowserInvisible(View view) {                
         Intent intent =new Intent();                              
         intent.setAction("android.intent.action.SEARCH");         
         intent.addCategory("android.intent.category.DEFAULT");    
         intent.setPackage("com.google.android.as");               
         startActivity(intent);                                    
     }

 

posted @ 2021-09-22 16:39  涂妖教  阅读(89)  评论(0)    收藏  举报