首页 > 其他分享 >第三单元 控件

第三单元 控件

时间:2024-05-05 11:44:59浏览次数:29  
标签:控件 layout Button 第三 import android id 单元 View

第三单元控件

Button控件

知识点一:如何设置点击事件

(1)方法一:

首先对xml中想要设置点击的控件添加onclick属性

即android onclick=“点击后要进行的函数名”

activity_main.xml
 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    >
<Button
    android:id="@+id/button1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="按钮1"
    android:onClick="click"
    />
    <Button
        android:id="@+id/button2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="按钮2"

        />
    <Button
        android:id="@+id/button3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="按钮3"
      
        />
</LinearLayout>

 然后在java文件里面写点击函数传入参数View表示实体也就是当前操作他的那个控件

创建私有对象变量Button a再在onCreate方法里面用id获取他->目的是:等会儿想在点击函数里写他怎么变

MainActivity.java
package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.widget.Button;
import android.view.View;
public class MainActivity extends AppCompatActivity {
private Button a;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        a=findViewById(R.id.button1);
    }
    public  void  click(View v){
        a.setText("按钮一被点击");
    }
}

也可以按哪个Button哪个Button变不一定非要Button1,按照下面这么改

MainActivity.java
 package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.widget.Button;
import android.view.View;
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
  
    }
    public  void  click(View v){
      ((Button)v).setText("按钮一被点击");
    }
}

这种方法的关键是要导包import android.view.View;

下面两个案例

1.按按钮3变按钮1文字

activity_main.xml
 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    >
<Button
    android:id="@+id/button1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="按钮1"

    />
    <Button
        android:id="@+id/button2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="按钮2"

        />
    <Button
        android:id="@+id/button3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="按钮3"
android:onClick="click1"
        />
</LinearLayout>

 

MainActivity.java
package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
private Button a;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        a=findViewById(R.id.button1);
    }

    public void click1(View v){
        a.setText("我爱你");
    }
}

 案例2:点击按钮3变最上面的文字(TextView里)

 

activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    >
    <TextView
        android:id="@+id/txt1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/love"
         />
<Button
    android:id="@+id/button1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="按钮1"

    />
    <Button
        android:id="@+id/button2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="按钮2"

        />
    <Button
        android:id="@+id/button3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="按钮3"
android:onClick="click1"
        />
</LinearLayout>
MainActivity.java
package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
private Button a;
private TextView t;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        a=findViewById(R.id.button1);
        t=findViewById(R.id.txt1);
    }

    public void click1(View v){
        a.setText("我爱你");
        t.setText("qwe");
    }
}

第二种方法匿名内部类

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
>
<TextView
android:id="@+id/txt1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/love"
/>
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按钮1"
android:onClick="click"

/>
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按钮2"

/>
<Button
android:id="@+id/button3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按钮3"

/>
</LinearLayout>   对按钮1实行匿名内部类来实现点击事件 package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
private Button a;
private TextView t;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); a=findViewById(R.id.button1);
a.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {这个函数名onClick不能变
a.setText("I love you!");
}
});
}

}  

 

 

方法3 接口

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button a;
private Button b;
private TextView t;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
a=findViewById(R.id.button1);
t=findViewById(R.id.txt1);
a.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
a.setText("I love you!");
}
});
b=findViewById(R.id.button2);
b.setOnClickListener(this);
}

public void click1(View v){
a.setText("我爱你");
t.setText("qwe");
}

@Override
public void onClick(View v) {
b.setText("WMY");
}
}         <?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
>
<TextView
android:id="@+id/txt1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/love"
/>
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按钮1"
android:onClick="click"

/>
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按钮2"
android:onClick="click2"
/>
<Button
android:id="@+id/button3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按钮3"
android:onClick="click1"
/>
</LinearLayout> 绿笔是关键,先写 b=findViewById(R.id.button2);
b.setOnClickListener(this); 然后this变红报错 然后点中this,Alt+Enter弹出这个选第二个实现接口

然后选第一个

最后在Onclick方法里写点击这个Button后你想干的

public void onClick(View v) {
b.setText("WMY");
}  

自适应(多语言)

第一步new resource file

第二步local,然后filename取strings

最后选地区ok

然后分别在每个语言的strings.xml下写代码,注意那个没有标语言的是默认strings.xml就是没有选语言默认显示

 

java文件

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
TextView txt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txt=findViewById(R.id.txt);

}
public void click001(View v){
txt.setText(R.string.app_name); //显示strings.xml里greetings里对应那句话
Toast.makeText(MainActivity.this,R.string.greetings,Toast.LENGTH_LONG).show();;

}
}

语言在设置里选

选完再打开app就是对应该语言下应该显示的(在他自己的strings.xml里设置)

标签:控件,layout,Button,第三,import,android,id,单元,View
From: https://www.cnblogs.com/luckyhappyyaoyao/p/18078426

相关文章

  • C# dataGridView控件实用属性及事件总结
    一、C#winformDataGridView属性说明①取得或者修改当前单元格的内容 ②设定单元格只读 ③不显示最下面的新行 ④判断新增行 ⑤行的用户删除操作的自定义 ⑥行、列的隐藏和删除 ⑦禁止列或者行的Resize ⑧列宽和行高以及列头的高度和行头的宽度的自动调......
  • 2024-5-3 假期第三天 杯具ε(┬┬﹏┬┬)3
    昨天和老哥约的今天吃饭,哥和嫂子十点多开车来学校接的我,然后去烤肉店,到店里哥就一直在看手机,然后肉刚烤熟哥就出去了,干啥也没说。我和嫂子都吃完了还没回来,得四十分钟左右吧,然后嫂子有点不高兴了,把剩下的肉打包了,就要直接回去,我趁下去的时候给大姨打个电话问问该怎么办,其实也不能......
  • Vue入门到关门之第三方框架elementui
    1、什么是ElementUI?ElementUI是一个基于Vue.js的组件库,它提供了丰富的UI组件和一套完整的解决方案,用于快速构建现代化的Web应用程序。ElementUI的目标是帮助开发者快速构建出美观、易用的界面,并提供了丰富的组件,包括但不限于按钮、表单、表格、对话框、菜单、导航、布......
  • 《Effective C++》第三版-4. 设计与声明(Design and Declarations)
    目录条款17:让接口容易被正确使用,不易被误用(Makeinterfaceseasytousecorrectlyandhardtouseincorrectly)限制类型和值规定能做和不能做的事提供行为一致的接口条款19:设计class犹如设计type(Treatclassdesignastypedesign)条款20:宁以pass-by-reference-to-const替换pass......
  • .Net单元测试xUnit和集成测试指南
    引言在现代化的软件开发中,单元测试和集成测试是确保代码质量和可靠性的关键部分。ASP.NETCore社区内提供了强大的单元测试框架,xUnit是其中之一,它提供了简单、清晰和强大的测试功能,编写单元测试有许多优点;有助于回归、提供文档及辅助良好的设计。下面几节我们来深入浅出探讨如......
  • SQL SERVER 从入门到精通 第5版 第三篇 高级应用 第12章 游标的使用 读书笔记
     第十二章游标的使用>.游标的概述游标是一种数据库对象,用于在SQL中处理(SELECT的)查询结果集。它允许逐行地访问查询结果集的数据,以进行一系列操作,如更新、删除或插入数据。游标通常用于存储过程或触发器中,用于对数据进行逐行处理。通过游标,可以实现对结果集的逐行处......
  • 《Effective C++》第三版-3. 资源管理(Resource Management)
    目录条款13:以对象管理资源(Useobjectstomanageresources)关键想法智能指针条款14:在资源管理类中小心copying行为(Thinkcarefullyaboutcopyingbehaviorinresource-managingclasses)条款15:在资源管理类中替工对原始资源的访问(Provideaccesstorawresourcesinresource-ma......
  • simpread-课程 24:工作单元之数据库事务【AOP】
    一、工作单元事务代码分析在上一个课程,我们已经实现了数据库事务功能,来保证数据的完整性。通过上一个课程的实现方式,我们在每一个Action开头和结尾,都需要添加对应的代码,才能实现事务功能,具体见以下截图:这种实现方式存在以下2个问题:在具体业务开发中,一个请求往往都会涉......
  • 机器学习实践第三篇——决策树构建
    一.什么是决策树决策树是一种基本的机器学习算法,其核心思想是通过对数据集进行递归的二分来构建一棵树形结构,每个节点代表一个属性测试,每个分支代表一个测试结果,每个叶子节点代表一个类别或者值。决策树的关键点包括:可解释性:决策树的模型结构直观易懂,可以被解释为一......
  • Qt控件QSplitter的用法
    简介继承自QFrame构造创建竖排分割窗口(一列多行)QSplitter*splitterVertical=newQSplitter(Qt::Vertical,nullptr);创建横排分割窗口(一行多列)QSplitter*splitterHorizontal=newQSplitter(Qt::Horizontal,nullptr);添加部件以子控件的方式添加QTex......