package com.example.activitytest;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class FirstActivity extends AppCompatActivity {
/*
显示菜单
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main,menu); //得到对象创建对象 创建菜单
return true; //表示允许创建的菜单显示出来
}
@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) { //监听器
switch (item.getItemId()){
case R.id.add_item:
Toast.makeText(this,"You clicked Add",Toast.LENGTH_SHORT).show();
break;
case R.id.remove_item:
Toast.makeText(this,"You clicked Remove",Toast.LENGTH_SHORT).show();
break;
default:
}
return true;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.first_layout);
Button button1 = (Button) findViewById(R.id.button_1);
button1.setOnClickListener(new View.OnClickListener() { //监听器点击事件
@Override
public void onClick(View v) {
//隐式INTENT
Intent intent = new Intent("com.example.avtivitytest.ACTION_START");
intent.addCategory("ndroid.intent.cetegory.DEFAULT");
/*显式INTENT
构建Intent 传入上下文,传入目标活动 即在FirstActivity这个活动的基础上打开SecondActivity
点击Button(活动)页面跳转
*/
//Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
startActivity(intent); //执行intent
//finish(); // 点击按钮销毁活动
/*
提醒 活动上下文 提醒的内容 时间
*/
//Toast.makeText(FirstActivity.this,"you clicked Button 1",Toast.LENGTH_SHORT).show();
}
});
}
}
已经配置了活动
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.activitytest">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.ActivityTest">
<!--只有action和category中的内容同时能够匹配上Intent中指定的action和category时这个活动才能响应Intent-->
<activity android:name=".SecondActivity">
<intent-filter>
<action android:name="com.example.activitytest.ACTION_START"/>
<category android:name="android.intent.cetegory.DEFAULT"/>
</intent-filter>
</activity>
<activity android:name=".FirstActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
E/AndroidRuntime: FATAL EXCEPTION: main<br />
Process: com.example.activitytest, PID: 17003<br />
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.example.avtivitytest.ACTION_START cat=[ndroid.intent.cetegory.DEFAULT] }<br />
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2067)<br />
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1727)<br />
at android.app.Activity.startActivityForResult(Activity.java:5320)<br />
at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:676)<br />
at android.app.Activity.startActivityForResult(Activity.java:5278)<br />
at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:663)<br />
at android.app.Activity.startActivity(Activity.java:5664)<br />
at android.app.Activity.startActivity(Activity.java:5617)<br />
at com.example.activitytest.FirstActivity$1.onClick(FirstActivity.java:55)<br />
at android.view.View.performClick(View.java:7448)<br />
at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:967)<br />
at android.view.View.performClickInternal(View.java:7425)<br />
at android.view.View.access$3600(View.java:810)<br />
at android.view.View$PerformClick.run(View.java:28305)<br />
at android.os.Handler.handleCallback(Handler.java:938)<br />
at android.os.Handler.dispatchMessage(Handler.java:99)<br />
at android.os.Looper.loop(Looper.java:223)<br />
at android.app.ActivityThread.main(ActivityThread.java:7656)<br />
at java.lang.reflect.Method.invoke(Native Method)<br />
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)<br />
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)