方法的匿名内部类OnClickListener对象{在此编写按键的内部执行逻辑} 这样每当点击按钮时,就会执行监听器中的onClick() 方法,我们只需要在这个方法中加入待处理的逻辑就行了。...EditText的应用场景非常普遍,在进行发短信、发微博、聊QQ等操作时,你不得不使用EditText。...的最大行数为两行,这样当输入的内容超过两行时,文本就会向上滚动,而EditText则不会再继续拉伸。 ...重新运行程序,在EditText中输入一段内容,然后点击按钮,效果如下图所示。 ?...当然,当本书后面涉及一些我们前面没学过的控件和相关用法时,我仍然会在相应的章节做详细的讲解。
,获取内容,并且改变EditText下面的TextView的颜色 重新发送的是采用一个自定义的CountDownTimer类 弹出效果自定义的一个Dialog继承DialogFragment 自定义EditText...int i2) { } @Override public void afterTextChanged(Editable editable) { //重点 如果字符不为""时才进行操作...editable.toString().equals("")) { if (stringBuffer.length() 3) { //当文本长度大于3位时edittext置空...= null) { builder = null; } super.onPause(); } public interface OnPositiveClicked { void OnClick(View...输入验证码表示同意《用户协议》"); text.setTextColor(Color.BLACK); } } } 至于那个自定义的CountDownTimer在这里有介绍 Android实现点击获取验证码60秒后重新获取功能
我们有时候的需求时,EditText 在不需要的时候,无法点击,或者取消它的默认焦点。 我们先看看通用解决方法。...而后者,显然是针对触屏情况下的,也就是我们点击屏幕的上的某个控件时,不要立即执行相应的点击逻辑,而是先显示焦点(即控件被选中),再点击才执行逻辑。...难不成每一个都这样操作?...blocksDescendants" beforeDescendants:viewgroup会优先其子类控件而获取到焦点 afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点...,由一个switch控制,当switch关闭时,editText可以输入,有焦点,否则无法点击,无焦点。
android:inputType,这个属性不仅可以指定键盘的显示类型,还能控制一些其他的操作,具体可以参考android的官方API,其默认属性是 android:inputType="text",...textEmailAddress时,键盘会多出来一个 @ 符号 <EditText android:id="@+id/blog" android:layout_width...键盘就会变成一个打电话时的键盘 <EditText android:id="@+id/counts" android:layout_width="match_parent...EditText有一个setError的方法,当调用这个方法时,则表示输入的数据不合法,我们来看看官方的API对该方法的解释: void android.widget.TextView.setError...WrapperListAdapter 我们看到,Android为我们提供了许多的Adapter,这是因为我们的数据可能来自不同的途径,而且对于一些特殊的控件,例如Spinner,我们也要有指定的SpinnerAdapter才行
> 元素,这样我们可以将这个action动作绑定到了这个Activity上,即Android操作系统会去找与intent对象中指定的action名字 的 对象,然后执行相应的动作...category android:name="android.intent.category.DEFAULT"/> 这样我们的Intent对象,在启动时,...public void onClick(View v) { Intent intent = new Intent(); intent.putExtra("message", editText1...requestCode值 * resultCode:表示的是启动后的Activity回传值时的resultCode值 * data:表示的是启动后的Activity回传过来的Intent对象 */...android.content.ActivityNotFoundException 第一个指定我们的Intent对象,第二个requestCode指定我们的一个启动标志值,因为我们可能有多个按钮,如果都是跳转到同一个Activity对象上,我们需要对其进行标志,才知道是哪个
在Android中startActivityForResult主要作用就是: A-Activity需要在B-Activtiy中执行一些数据操作,而B-Activity又要将,执行操作数据的结果返回给A-Activtiy...} private class button_start_task_Listener implements OnClickListener { public void onClick...} } /** * 复写onActivityResult,这个方法 * 是要等到SimpleTaskActivity点了提交过后才会执行的...protected void onActivityResult(int requestCode, int resultCode, Intent data) { //可以根据多个请求代码来作相应的操作...private class Button_task_fulfill_Listener implements OnClickListener { public void onClick
BankTransfer 官方更推荐Room而不是SQLite:https://developer.android.google.cn/training/data-storage/room 用SQLite语句执行...;"); db.execSQL("drop table if exists contactinfo"); onCreate(db); } } 笔记批注: 当我们重新运行程序时...那么如何让onUpdate()方法能够执行呢?我们这里的MyDBOpenHelper构造器第四个参数是当前数据库的版本号,之前传入的是1,现在只要传入一个比1大的数字即可运行onUpdate方法。...这里只演示在控制台操作。...请稍后再试", Toast.LENGTH_SHORT).show(); } finally { db.endTransaction(); // 关闭事务,如果未执行
设置文本选中内容加粗模式,代码如下所示,可以看到这里只需要传递一个lastFocusEdit对象即可,这个对象是最近被聚焦的EditText。...12.如何删除图片或者文字 当富文本处于编辑状态时,点击删除图片是可以删除图片的,对于删除的逻辑,封装的lib可以给开发者暴露一个删除的监听事件。...relativeLayout view */ private void onImageCloseClick(View view) { try { //判断过渡动画是否结束,只能等到结束才可以操作...当设置了布局动画的ViewGroup添加或者删除内部view时就会触发动画。...stateVisible-可见状态:当设置为这个状态时,软键盘总是可见的,即使在界面上没有输入框的情况下也可以强制弹出来出来。
如果还有data标签,也要一一对应才行。...requestCode int:如果>=0,则当活动退出时,此代码将在onActivityResult()中返回。...如果活动显式返回,则不会返回任何结果,或者在操作期间崩溃,resultCode将为RESULT_CANCELED。 当您的活动重新启动时,您将在onResume()之前立即收到此调用。...关于意图的小Demo Demo地址:https://github.com/liuchenyang0515/shiyan4_1 实验要求: 根据要求的界面,实现以下功能: (a) 当点击“添加数据”按钮时...,等待重新输入; (d) 当点击“全部删除”按钮时,清空集合中的数据,并使用Toast控件显示“全部数据已经删除!”
@Override public void onClick(View v) { // TODO Auto-generated method stub value =...() { @Override public void onClick(View v) { // TODO Auto-generated method stub String...get时就会发现: EditText中的文字Hello World依旧存在,而我的Value变量变为0.0了。...所以当我们Home出去时就会打印出现,至于我们的变量为啥没有恢复,很明显那是因为没人保存它的值,这就得需要我们程序员自己手动保存。...同时, 除系统资源不足时,或者手机的屏幕方向变化时,改变语言时,都会导致Activity重现销毁,然后重现再创建。这时候如果我们不保存需要保存的数据,也会出现不对的情况。
TextToSpeech.QUEUE_FLUSH:如果指定该模式,当TTS调用speak方法时, 它会中断当前实例正在运行的任务(也可以理解为清楚当前语音任务,转而执行新的语音任务) TextToSpeech.QUEUE_ADD...:如果指定该模式,当TTS调用speak方法时,会把新的发音任务添加到当前发音任务列队之后——也就是等任务队列中的发音任务执行完成后再来执行speak()方法指定的发音任务。...Speech.java: public class Speech extends Activity { TextToSpeech tts; EditText editText; Button...(View arg0) { // 执行朗读 tts.speak(editText.getText().toString(), TextToSpeech.QUEUE_ADD...编程之activity操作技巧总结》、《Android数据库操作技巧总结》、《Android文件操作技巧汇总》、《Android资源操作技巧汇总》及《Android控件用法总结》 希望本文所述对大家Android
editText; TextView textView; EditText editText1; Handler handler; EventHandler eventHandler = null;...System.out.println("afterEvent + ================================="); // afterEvent会在子线程被调用,因此如果后续有UI相关操作...请求验证码 findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { @Override public void onClick...提交验证码 findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() { @Override public void onClick...-----=================================="); // TODO 处理成功得到验证码的结果 // 请注意,此时只是完成了发送验证码的请求,验证码短信还需要几秒钟之后才送达
R.id.button); b.setOnClickListener(new View.OnClickListener() { @Override public void onClick...使用RxBinding时,你对这些监听事件的可以有一致的实现:RxJava的subscription。只需要对RxJava稍有了解即可。...你可以想象,通过RxJava的操作方法及自定义的操作方法你可以实现许多功能。 我想再表扬一下这么强大的语法糖,远超Android这些视图/控件API。...遵照一致的RxJava Observable 语法规范,你可以执行一系列通常无法做到的连锁操作。这将为你构建一个响应式应用带来极大的帮助。...当RxView.scrollChangeEvents() observable被subscribed时,该ViewScrollChangeEvent将作为onNext方法的参数。
Button控件设置监听器 button.setOnClickListener(new OnClickListener() { @Override public void onClick...(View v) { // 当按下时,通过Intent跳转到SecondActivity Log.i("Activity_Log", "Button按下"); //new一个Intent...); //启动Activity,带返回 startActivityForResult(intent, 5678); } }); } //当SecondActivity...返回时,就会调用onActivityResult @Override protected void onActivityResult(int requestCode, int resultCode,...string); backButton.setOnClickListener(new OnClickListener() { @Override public void onClick
EditText为我们提供了android:hint来设置当EditText内容为空时显示的文本,这个文本只在EditText为空时显示,你输入字符的时候就消失了,不影响你的EditText的文本。。...看看吧,简洁明了还不用新增一个TextView说明,也不影响用户操作。...上面列出了空白时的提示文字,有的人说了,我不想要这个灰色的提示文字,和我的应用整体风格不协调,那也行啊,我们可以换颜色,怎么换呢,就是通过android:textColorHint属性设置你想要的颜色。...all.setOnClickListener(new OnClickListener() { @Override public void onClick...select.setOnClickListener(new OnClickListener() { @Override public void onClick
ArrayList<String (); for(int i=0;i<20;i++){ numList.add("100000000"+i); } initListView(); //对下拉按钮设置监听 当进行点击时...弹出popWin down.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if...是整个activity退出 而且给人的感觉是直接退出 窗口可能还是显示状态, 为了避免内存泄露,先关闭弹窗 * * 当点击返回按钮时 如果窗口存在且正在显示 则关闭窗口 */ if(popWin!...position)); //对删除按钮设置监听事件 holder.delete.setOnClickListener(new OnClickListener() { @Override public void onClick...(View v) { //当点击删除按钮时 删除条目 numList.remove(position); //刷新ListView MyListAdapter.this.notifyDataSetChanged
bt_regis.setOnClickListener(new OnClickListener(){ @Override public void onClick...(View arg0) { EditText tv = (EditText) findViewById(R.id.na); ...name = tv.getText().toString(); EditText mm = (EditText) findViewById(R.id.pd);...Regis.this.setResult(0,intent); finish(); } }); } 不需要跳转回原来的时,...可以使用 Bundle intent = getIntent().getExtras(); intent.getString("name"); 注意: 只有在自动跳转回来的这种函数中才可以使用onActivityResult
phone; private MyCountDownTime myCountDownTime;// 用于验证码倒计时 private Handler mHandler;//用于执行耗时操作 @Override...startTimer() { if (null == myCountDownTime) { myCountDownTime = new MyCountDownTime(60000, 1000, btGet, "重新发送..."); } myCountDownTime.start(); } /** * * @Description: TODO 一般发送失败时,需要重置Button状态 */ private void cancelTimer...phone; private MyCountDownTime myCountDownTime;// 用于验证码倒计时 private Handler mHandler;//用于执行耗时操作 @Override...startTimer() { if (null == myCountDownTime) { myCountDownTime = new MyCountDownTime(60000, 1000, btGet, "重新发送
咱们书接上文,继续来说说Android数据读取,这回,我们要讲的是Sqlite数据库的相关操作。以一个实例开始吧: 首先,上图,看看做成后的效果: ? ? ?...大概描述:类似于浏览器的收藏夹,网站名称,网站地址,网站描述,添加完成之后显示已添加的所有的内容,在ListView单击弹出是否删除对话框,删除成功后刷新视图并重新查询内容。...SQLiteDataBase代表一个数据库对象,提供了操作数据库的一些方法,另外还有一个SQLiteOpenHelper工具类更简洁的功能。 实例的文件组织如下: ?...void del(int id) { if(db==null) { //获得SQLiteDatabase实例 db=getWritableDatabase(); } //执行删除...which) { // TODO Auto-generated method stub //删除数据 helper.del((int)temp); //重新查询
有时,我们希望在对话框创建或关闭时完成一些特定的功能,这需要复写 Dialog的create()、show()、dismiss()等方法,将在第3部分介绍。 2.代码示例 ?...} }); // 显示 normalDialog.show(); } } 3个按钮 /* @setNeutralButton 设置中间的按钮 * 若只需一个按钮,仅设置...editText = new EditText(MainActivity.this); AlertDialog.Builder inputDialog = new AlertDialog.Builder...dialog, int which) { Toast.makeText(MainActivity.this, editText.getText().toString(),...(DialogInterface dialog, int which) { // 获取EditView中的输入内容 EditText edit_text = (
领取专属 10元无门槛券
手把手带您无忧上云