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); }

浙公网安备 33010602011771号