首页 > 其他分享 >Android studio(创建、监听器intent菜单)

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

时间:2024-06-11 11:43:41浏览次数:25  
标签:Toast 菜单 studio 监听器 按钮 intent FirstActivity 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);

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

 

标签:Toast,菜单,studio,监听器,按钮,intent,FirstActivity,Intent
From: https://www.cnblogs.com/hmy22466/p/18236200

相关文章

  • 【译】Visual Studio 17.10 发布了新版扩展管理器
    我们将更新的扩展管理器带给所有用户!在过去的一年里,我们已经将更新后的扩展管理器作为可选的预览功能提供,并一直期待您的反馈。基于您令人难以置信的反馈,我们现在准备从VisualStudio17.10开始提供新的扩展管理器作为默认预览功能。我们已将基本功能简化为现代风格UI,以......
  • Android studio实现图标方式展示信息(折线图等)时com.github.mikephil.charting.charts.
    参考连接——https://blog.csdn.net/m0_37919094/article/details/122416408 去https://gitcode.com/PhilJay/MPAndroidChart/overview?utm_source=csdn_github_accelerator&isLogin=1下载MPAndroidChart的zip包,解压 在Androidstudio中操作file——》new——》importm......
  • Android studio 连接sqlist数据库,账号密码错误仍能登录的原因
    昨天在写Androidstudio的大作业,写到连接sqlist数据库实现登录的时候明明账号密码都不正确,但是用户却可以登录,我原先以为是我sql语句写错了,将sql语句从Cursorcursor=db.rawQuery("select*fromuserwherenamelike?andpasswordlike?",newString[]{name,password});改......
  • SQL Server Management Studio (SSMS) 20.1 - 微软数据库管理工具
    SQLServerManagementStudio(SSMS)20.1-微软数据库管理工具请访问原文链接:https://sysin.org/blog/ssms/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org笔者注:SQLServer2014及之前版本内置SQLServerManagementStudio(SSMS),SQLServer2016及以后版本......
  • FL Studio for Mac 21.2.3.3586官方中文破解版及FL注册解锁秘钥
    Hey小仙女们!今天小助手来跟你们分享一个超级激动人心的消息哦!你们有没有听说过FLStudio21破解版?这可是一款让你的音乐创作更加轻松、时尚和精彩的软件呢!FLStudioforMac21.2.3.3586官方中文破解版重磅发布纯正简体中文支持,更快捷的音频剪辑及素材管理器,多样主题随心......
  • RT-Thread Studio使用教程
    介绍RT-ThreadStudio是官方出品的一款专门针对RT-Thread嵌入式开发、部署、调试、测试的集成开发环境,它基于Eclipse开源项目开发,极大的提高了嵌入式开发者的开发效率,目前最新版本是2.26下载使用浏览器打开RT-Thread官网,选择左上角资源点击RT-ThreadStudio,打开RT-ThreadStudi......
  • 创建Android studio项目出现connect time out
    创建Androidstudio项目出现connecttimeout解决方法:AndroidStudio导入项目后报错connecttimeout-知乎(zhihu.com) 在项目里面找到gradle-wrapper.properties文件,找到gradle版本 在下面网站找到对应版本下载Indexof/gradle/(tencent.com) 我的是8.0-bin,下......
  • vsode (Visual Studio Code) JS -- HTML 教程
    vsode(VisualStudioCode)JS–HTML教程JavaScript是什么-JavaScript是一种基于对象和事件驱动的脚本语言,广泛用于在网页上实现动态交互效果。JavaScript可以嵌入到HTML页面中,通过在脚本标签中编写JavaScript代码来实现各种功能。它主要用于处理用户交互、操......
  • 同三维T5020 (新款)单路USB3.0高清HDMI免驱采集盒在OBS Studio的使用方法
    一、首先将产品与需要采集的信号按说明把硬件都连接好。然后用鼠标右击我的电脑(WIN10系统下)或计算机(WIN7系统下)点击管理进入到设备管理器,以下在WIN10系统下显示如下:红色标注的就是采集盒设备。表明已经安装成功。进入到OBS的官网将软件下载到电脑。下载地址如下:Down......
  • 描述Servlet监听器的类型和用途
    Servlet监听器是Servlet规范中定义的一种特殊的类,用于监听Web应用程序中特定事件的发生。它们按照监听的对象和事件类型,可以划分为多种类型,每种类型都有其特定的用途。监听器的类型按照监听对象划分应用程序环境对象(ServletContext)的事件监听器:ServletContextListener......