Android studio(创建、监听器intent菜单)

创建报错connect run out 可以查看这篇文章

1.自动创建

 

 

2.设置输出日志信息

logt+tab键之后会为当前的类自动生成一个TAG常量

 

关于日志过滤器

 这时候在只有Log.v里面的消息,Log.d、i、w、e都没有出现。

当输入MainActivity的时候过滤到与其相关的

 

3.手动创建

选择No Activity

 

添加以下代码,以免下载东西过慢

我是直接中断,添加代码后再Sync一下

        //解决下载慢问题
        maven { url = uri("https://maven.aliyun.com/repository/public") }
        maven { url = uri("https://maven.aliyun.com/repository/google") }

 

 

创建后在app\src\main\java\com下面创建一个new->activity->Empty Activity

填入信息,不要选择Generate a Layout File(会自动给Activity创建一个对应的布局文件,会将FirstActivity设置为当前项目的主要活动)

 

在app\src\main\res下面创建一个layout目录

在layout里面创建一个layout Resource File文件,名为first_layout

 

添加按钮操作

 

加载布局,回到FirstActivity中,onCreate中加入以下代码

setContentView中传入布局文件的id

 

去到AndroidManifest.xml中进行注册,并添加主活动

 

 

 

4.给按钮增加监听器

public class FirstActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //添加布局文件的id
        setContentView(R.layout.first_layout);
        //使用Toast方法
        // 获取按钮实例
        Button button1 = findViewById(R.id.Button_1);
        //为按钮注册监听器
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //Toast.LENGTH_SHORT用来设置显示时长
                Toast.makeText(FirstActivity.this,"这是一个提示",Toast.LENGTH_SHORT).show();
            }
        });
    }
}

 

 

5.菜单设置

在res里面新建目录  menu,在menu里面新建main菜单文件

 去到FirstActivity里面编写相关代码,这里注意,新版as用switch会报错,要修改成if语句(可以将光标移到switch中按ALT+Enter快捷键直接转换成if语句)

//显示菜单
    public boolean onCreateOptionsMenu(Menu menu) {
        //获取Inflater通过inflate方法创建菜单
        getMenuInflater().inflate(R.menu.main,menu);
        //返回true表示允许显示菜单,false则菜单无法显示
        return true;
    }

    public boolean onOptionsItemSelected(MenuItem item) {
        //得到点击的菜单的item 的id,给每个菜单项加入逻辑处理
        int itemId = item.getItemId();
        if (itemId == R.id.add_item) {
            Toast.makeText(this, "点击了添加菜单项", Toast.LENGTH_SHORT).show();
        } else if (itemId == R.id.remobe_item) {
            Toast.makeText(this, "点击了删除菜单项", Toast.LENGTH_SHORT).show();
        }
        return true;
    }

 

 

 

6.跳转到其他主活动(显式与隐式Intent)

6.1显式Intent

先新建一个活动,要选择Generate a Layout file,单不要选择Laucher Activity(这个会将其变为主要活动)

在second_activity的layout文件添加一个按钮,去Android Manifest里面看看是否注册了该活动

实现在FirstActivity中点击按钮,去到SecondActivity中

// 获取按钮实例
        Button button1 = findViewById(R.id.Button_1);
        //为按钮注册监听器
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //Toast.LENGTH_SHORT用来设置显示时长
//                Toast.makeText(FirstActivity.this,"这是一个提示",Toast.LENGTH_SHORT).show();
                //在FirstActivity的基础上打开SecondActivity
                Intent intent=new Intent(FirstActivity.this,SecondActivity.class);
                startActivity(intent);
            }
        });

 

6.2隐式Intent

字符串可以自定义,只要在manifest里面的action字符串相同即可。

//隐式intent
                Intent intent = new Intent("com.example.activitytest.ACTION_START");
                startActivity(intent);

在AndroidManifest里面

<activity
            android:name=".SecondActivity"
            android:exported="false">
            <intent-filter>
                <action android:name="com.example.activitytest.ACTION_START"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </activity>

 

通过隐式intent实现点击按钮能够打开Android的另一个程序

//隐式实现点击按钮,打开Android另一个程序
                Intent intent = new Intent(Intent.ACTION_VIEW);
                //打开百度
//                intent.setData(Uri.parse("http://www.baidu.com"));
                //去到拨号页面
                intent.setData(Uri.parse("tel:10086"));
                startActivity(intent);

6.3通过intent传递数据

在FirstActivity按钮监听事件中

 //intent传递数据
                Intent intent=new Intent(FirstActivity.this,SecondActivity.class);
                String data = "Intent传递数据到第二个活动";
                intent.putExtra("extra_data",data);
                startActivity(intent);

在SecondActivity中

//取出intent中传来的数据
        Intent intent = getIntent();
        String data = intent.getStringExtra("extra_data");
        Log.d("SecondActivity",data);

启动后点击第一个页面按钮后

 

posted on 2024-06-11 11:34  201812  阅读(47)  评论(0编辑  收藏  举报