Android中控件的初步认识(二)

【安卓自定义控件系列】安卓自定义控件之组合控件 在安卓开发中,谷歌已经为我们提供了许多原生控件,基本上能够满足我们日常的开发需求,但是某些项目中原生控件可能达不到产品所要求的各式各样的酷炫效果或功能效果,这个时候我们只能自己自定义控件来满足项目需求,我们知道自定义控件包括三种方式: 1继承控件,即继承谷歌提供的原生控件,在此基础上提供一些原生控件不具备的功能,如github上各种酷炫效果的开源组件基本上都是采用的这种方式. 2组合控件:即组 阅读详情
package com.itarchy.demo;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class HomeActivity extends Activity {

	private Button btn;
	private Button btnBack;

	private int RequestCode = 200;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		// 1、通过setContentView加装布局
		setContentView(R.layout.home_main);

		/**
		 * 一、直接启动Activity
		 */
		// 通过findViewById找到控件,需要强制转换?????
		btn = (Button) this.findViewById(R.id.btn);
		// 3、添加监视器
		btn.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				// 点击的时跳转到NewActivity
				// 指定启动源、启动目标
				// 为什么不能用this?????
				Intent intent = new Intent(HomeActivity.this, NewActivity.class);
				startActivity(intent);
			}
		});

		/**
		 * 二、待返回值启动Activity
		 */
		btnBack = (Button) this.findViewById(R.id.btn_back);
		btnBack.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				Intent intent = new Intent(HomeActivity.this,
						ForResultActivity.class);
				startActivityForResult(intent, RequestCode);

			}
		});

	}

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		super.onActivityResult(requestCode, resultCode, data);

		// 100 ???
		if (requestCode == RequestCode && resultCode == 100) {

			String resultValue = data.getStringExtra("ForBack");
			int resultInt = data.getIntExtra("ForBack_int", 1000);
			Log.i("Tag", "---TAG-HomeActivity-onActivityResult--resultValue="
					+ resultValue);
			Log.i("Tag", "---TAG-HomeActivity-onActivityResult--resultInt="
					+ resultInt);

		}

	}

}


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".HomeActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:text="HomeActivity" />

    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="直接启动Activity" />

    <Button
        android:id="@+id/btn_back"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/btn"
        android:layout_centerHorizontal="true"
        android:text="带返回值启动Activity" />

</RelativeLayout>



package com.itarchy.demo;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class ForResultActivity extends Activity implements OnClickListener {

	// 声明控件
	private TextView tvResult;
	private Button btnBack;

	private String result;

	private int ResultCode=100;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.forresult_main);
		initView();
		setListener();
	}

	// 初始化
	private void initView() {
		tvResult = (TextView) this.findViewById(R.id.tv_result);
		btnBack = (Button) this.findViewById(R.id.btn_sure);
	}

	private void setListener() {
		// this?????
		btnBack.setOnClickListener(this);
	}

	// 点击的时候执行onClick方法
	@Override
	public void onClick(View v) {
		result = tvResult.getText().toString();
		Log.i("Tag", "---TAG-ForResultActivity-->" + result);

		// 创建Intent对象
		Intent data = new Intent();
		// 封装返回值
		data.putExtra("ForBack", result);
		data.putExtra("ForBack_int", 500);
		setResult(ResultCode, data);
		this.finish();

	}

}

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffbbbbbb" >

    <TextView
        android:id="@+id/tv_result"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:text="ForResultActivity" />

    <Button
        android:id="@+id/btn_sure"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:text="确定" />

</RelativeLayout>

package com.itarchy.demo;

import android.app.Activity;
import android.os.Bundle;

public class NewActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.new_main);
	}
	
	

}


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_centerHorizontal="true"
        android:text="NewActivity"/>

</RelativeLayout>

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.itarchy.demo"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.itarchy.demo.HomeActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        
        <activity android:name="com.itarchy.demo.NewActivity"/>
         <activity android:name="com.itarchy.demo.ForResultActivity"/>
    </application>

</manifest>



安卓APP(3)——安卓布局控件 阅读详情

相关推荐

Android入门(二)——常见布局与控件

一、常见界面布局及案例 二、常见界面控件及案例 三、Activity

rookie_0_0的博客 5217

使用Fragment优雅地申请运行时权限

今日科技快讯近日,发改委新闻发言人表示,从去年下半年开始,出现了有关互联网行业裁员的一些报道。近期,我们通过多种方式进行了调研,包括到有关企业进行座谈,和有关行业进行座谈...

郭霖 2058

安卓子控件抢占父控件点击事件或者焦点问题

开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了,可能会发生点击每一个item的时候没有反应,无法获取的焦点。原因多半是由于在你自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件(也可以说是Button或者C

Tamic (大白) 1万+

黑马程序员_Android-Activity布局初步(二)与常用控件(二)

---------------------- android培训、java培训、期待与您交流! ----------------------- 一:Activity布局初步(二) 1:LinearLayout的使用方法 属于线型布局 LinearLayout初步布局属性:      android:orientation="vertical"; LinearLayout布局

wm25281314的专栏 1316

安卓动态添加控件(子项)教程

在开发安卓应用时,动态地向用户界面(UI)添加控件是一个常见的需求。随着用户交互的深入,应用程序往往需要在运行时根据特定的逻辑或事件响应,向屏幕中添加新的元素,如按钮、文本框等。这不仅能够提供更加动态和丰富的用户体验,还可以优化应用的性能和资源使用。在这一章,我们将简要介绍动态添加子项的基本概念、目的以及它在实际开发中的重要性,为接下来探讨具体实现步骤和最佳实践奠定基础。通过理解这一概念,开发者可以更好地掌握安卓应用的UI设计和交互逻辑。

weixin_29363791的博客 755

python爬虫自动下载网页链接

需求分析 今天遇到一个简单的需求,需要下载澳大利亚电力市场NEM日前市场的发电商报价数据(http://nemweb.com.au/Reports/Current/Next_Day_Offer_Energy/),页面观感是这样的: Ctrl + F 一下,看到一共有395个zip链接。于是就想着用python爬虫自动下载。这个网页很简单,没有验证码,甚至不需要登录,因此自动下载的pytho...

da_kao_la的博客 1万+

安卓基础控件之初步运用

Start(开始端)_toStartOf=“parent” 的意思是说,我的(这个TextView)Start(开始端)在 parent(父布局)的开始端。那如果你有一个Constraintlayout约束布局,里面有一个TextView,那这个TextView你必须给他设置约束布局的位置。**创造recycler_view的布局管理器,管理recycler_view元素的布局方式,比如线性布局,网格布局。,看到Palette面板右边的RecyclerView,旁边的,我画的红色的下载图标吗?

m0_54557677的博客 924

给IC设计新人的Tessent Scan入门指南:从RTL到ATPG的完整DFT流程解析

本文为IC设计新手提供Tessent Scan的完整DFT流程指南,从RTL代码检查到ATPG测试向量生成,详细解析扫描链配置、插入及验证的关键步骤。通过实战案例和工具命令示例,帮助工程师快速掌握Tessent工具链的应用技巧,提升芯片可测试性设计的效率和质量。

weixin_32541663的博客 451

安卓控件及布局的初步认识

一、控件 控件是用来展示一个界面的,安卓中提供了大量的UI控件,通过这些控件的组合就能够编写出一个我们想要的界面。比如:按钮、进度条、对话框、编辑栏、显示栏这些都是组件。 1、TextView(用于显示文本信息) id是给予这个控件一个标识符,是唯一的,每个控件都具有width和height属性,而属性值一般有match_parent、fill_parent以及wrap_content。...

smyx的博客 1332

不用写触发器!帆软填报报表自动记录创建/修改时间的终极方案

本文详细介绍了帆软填报报表中无需编写数据库触发器,即可自动记录数据创建时间和修改时间的终极方案。该方案利用帆软内置函数和单元格条件属性,在应用层实现日期自动生成,有效规避了触发器带来的权限、维护和部署难题,为数据填报提供了更轻量、灵活且易于维护的解决方案。

weixin_28040125的博客 365

【软件介绍】RVC本地部署使用方法

【摘要】RVC是一款功能强大的开源语音转换工具,具有实时处理、多音效选择、高质量音频处理等特点。文章详细介绍了RVC的安装与使用方法:1)配置Python环境;2)根据电脑系统选择对应安装包解压;3)启动程序进入浏览器操作界面。重点讲解了声音克隆的关键步骤:建议使用短音频素材,选择合适训练方法(推荐pm或rmvpe),设置100次训练轮数,生成的模型文件存入weights文件夹。最后通过上传音频即可实现声音克隆。操作过程需注意保持程序运行状态,并提供了相关资源下载地址。

心动的那一刻,记忆便盛开了花 2982

安卓常用的控件

除了使用内置控件,Android还允许开发者创建自定义控件,以满足特定的需求。自定义控件可以继承已有的控件类(如View或ViewGroup),然后重写绘制方法和事件处理方法。继承已有控件: 创建一个类,继承自View或ViewGroup。重写绘制方法: 在onDraw方法中定义控件的绘制逻辑。处理事件: 在方法中处理用户的交互事件。添加自定义属性: 在res/values文件夹中定义自定义属性,并在控件中解析这些属性。掌握Android中的各种控件及其用法是创建丰富用户界面的基础。

double222222的博客 1671

【maxENT】从数据到地图:R语言实现最大熵物种分布建模全流程解析

本文详细解析了如何使用R语言实现最大熵模型(MaxEnt)进行物种分布建模的全流程。从数据准备、环境变量处理到模型训练与参数调优,再到模型评估与结果可视化,提供了实用的代码示例和避坑指南。特别适合生态学研究者利用最大熵模型处理物种分布数据,提升研究效率。

weixin_27244795的博客 216

如何让安卓(Android)子控件超出父控件的范围显示

下面我们来看一下关于安卓(Android)子控件超出父控件的范围显示出来的方法,希望这篇文章能够帮助到各位安卓(Android)的开发者们,有碰到此问题的朋友可以进来看看哦。 废话不多说,直接上代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14

戴眼镜的小姑娘 9079

基于改进YOLO11的天际线检测算法:复杂光照与恶劣天气适配实战

针对特定任务的YOLO改进,不应追求通用SOTA,而应深入理解任务的物理退化机理。Retinex对应光照模型、FAD对应散射模型、Wise-IoU对应边界不确定性——每个改进都有明确的物理解释,而非盲目的模块堆叠。时序一致性:引入轻量级RNN/Transformer模块利用视频帧间信息补偿单帧退化;多模态融合:结合红外/NIR波段穿透雾霾,与可见光特征在FAD-Neck中交叉注意力融合;自监督预训练:在海量无标注天际线视频上用MAE预训练Backbone,缓解恶劣天气标注稀缺问题。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 96

低功耗设计-ir drop的signoff corner怎么选择?

2.tt的(tt85 是比较接近芯片真实工作情况的);我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?有要求就用要求的就好,没要求前两种看公司需求。3.signoff文档要求的;有几个方向,看公司需求吧。

m0_61544122的博客 1595

【Android】视图与常用控件总结

属性名描述android:id为视图分配唯一的ID,用于在代码中引用设置视图的宽度设置视图的高度设置视图的外边距设置视图的内边距设置视图在其父视图中的对齐方式(仅适用于ViewGroup的子视图)设置视图内容的对齐方式设置视图的背景颜色或图片设置视图的可见性(visibleinvisiblegone设置视图在线性布局中的权重(仅适用于设置视图是否与父视图的顶部对齐(仅适用于设置视图是否与父视图的底部对齐(仅适用于设置视图是否在父视图中居中(仅适用于设置视图在另一视图的下面(仅适用于。

Patrick_yuxuan的博客 1676

Dify 系列教程 | 第 6 篇:工作流入门 -- 用可视化方式编排 AI 逻辑

Dify 工作流是一个基于有向无环图(DAG)的可视化 AI 逻辑编排系统。你可以把多个处理步骤(节点)用连线串联起来,数据从起点流向终点,每经过一个节点就被处理一次。用一个类比来理解:如果单次 Prompt 调用是"一道菜",那工作流就是"一道完整的生产线" – 原材料(输入)进入流水线,经过清洗(预处理)、切配(数据转换)、烹饪(AI 推理)、装盘(格式化输出)等工序,最终产出成品。创建一个工作流类型的应用(或高级聊天类型),就会进入工作流编辑器。编辑器基于ReactFlow构建(

weixin_43674738的博客 121

【安卓初步】常用控件

android:id="@+id/tv_main" id是控件的标识符,可以在别处通过id找到该控件 android:layout_width="match_parent" android:layout_height="wrap_content" layout_width布局宽度 layout_height布局高度 可以直接指定,也可以用match_parent(充满父布局),wrap_con...

lzx's blog 436

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

android系统控件大全,安卓系统控件大全

《本文定位》本系列的文章定位是让大家了解的安卓系统中的控件有哪些,会尽量的将安卓中的所有的控件的都的罗列出来。关于控件,可以的一直深入学习,一些的重要的控件,我会在单独的章节中的介绍。第一章Android中的控件一、能够自身显示内容的控件TextViewAutoCompleteTextViewMultiAutoComPleteTextViewEditTextButtonToggleButtonCo...

weixin_29463881的博客 4521

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

android studio 查看 安卓控件源码

android studio 查看 安卓控件源码 文档:android studio 查看 安卓控件源码.not… 链接:http://note.youdao.com/noteshare?id=b145d5903295e53ec59df4f6289f130a&sub=B05463B526B34681BB0732CFA4CEDA3E

jonathan_joestar的博客 1449

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

安卓Android Studio 控件之 卡片式ListView效果

在安卓APP开发过程中,ListView是常用的数据展示控件,不过系统自带的样式过于单调,而且显示数据单一。下面介绍一个卡片式的ListView控件。同样是经过测试,拿来主义,根据步骤一步步就能实现。 首先总体介绍一下思路:还是使用ListView控件,但是样式需要自己定义一个xml文件,在ListView控件引用样式时调用自己定义的xml文件即可。 主要功能:以卡片样式显示数据,卡片内数据可以实现点击事件的操作。以便于下一步操作选中的数据。 先上效果图: 下面介绍实现过程: 1、在a...

jackiesky1206的博客 6404

android view超出屏幕_如何让安卓(Android)子控件超出父控件的范围显示

先来看一张预览图:废话不多说,直接上代码:android:layout_width="match_parent"android:layout_height="match_parent"android:clipChildren="false">android:layout_width="match_parent"android:layout_height="match_parent"andro...

weixin_39968436的博客 2085

安卓界面控件之Spinner

安卓界面控件之SpinnerSpinner的定义:如果为Spinner中添加选择项目 Spinner的定义: 1.Spinner是一种能够从多个选项中选一个选项的控件,使用浮动菜单为用户提供选择 2.类似于桌面程序的组合框(ComboBox) Spinner位于工具栏Palette栏中的Containers中的第一个(意味着Spinner是一种容器,存放选择的容器) 如...

weixin_44405478的博客 1190

Android 控件架构与自定义控件(二)

六 .自定义View在自定义View时,我们通常会去重写onDraw() 方法来绘制View的显示内容。如果该View还需要使用wrap_content属性,那么还必须重写onMeasure() 方法。另外,通过自定义attrs属性,还可以设置新的属性配置值。在View中通常有以下一些比较重要的回调方法 onFinishInflate(): 从XML 加载组件后回调 onSizeChanged()

蓝枫 5794

安卓linearLayout动态添加控件

在安卓系统中,LinearLayout布局添加控件,如果超过屏幕本身,是不会自动换行的。在一些文章通过重写LinearLayout来到达效果,本人也是通过LinearLayout再嵌套LinearLayout来到达自动换行,虽然布局文件增多,但效果达到了。

zx86838668的博客 9090
上一篇: Android中初步认识HelloWorld(一)
下一篇: Android中Intent的使用(三)
itarchy
博客等级 码龄11年 7粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值