导致事件的最深嵌套元素是事件的目标。你可以通过event.stopPropagation停止冒泡
首先来看一下Android文件的读写: 假设我们现在有这么一个需求:一个Activity中有一个EditText,在每次这个程序启动的时候我们要恢复用户上一次在EditText中输入的数据。...在 onDestroy 方法中调用 saveText 来储存 EditText 中的数据。,在 onCreate 方法中我们进行恢复 EditText 中的数据。...toString()); // 如果选中记住密码单选框就储存密码 } editor.apply(); // 上传数据 Toast.makeText(this, "单击登录按钮...“登录”按钮时对用户名和密码等信息的储存,loadUserInfo() 方法用于恢复用户名和密码等操作。...输入账户和密码,单击记住密码: ? 点击登录按钮。然后完全退出程序,再次启动程序: ? Yes,成功记住了密码,我们可以在模拟器的文件管理中找到我们刚刚储存的文件 ?
Button(按钮)是Android开发中使用非常频繁的组件,主要是在UI界面上生成一个按钮,该按钮可以供用户单击,当用户单击按钮时,按钮会触发一个onClick点击事件。...为了监听登录按钮的点击事件,在Java代码中为其添加点击事件监听器,具体代码如下: public class MainActivity extends AppCompatActivity { private...EditText mNameEt = null; // 用户名输入框 private EditText mPasswordEt = null; // 密码输入框 private Button...public void onClick(View view) { // 获取用户输入的用户名和密码 String name = mNameEt.getText...().toString(); String password = mPasswordEt.getText().toString(); /
如果我们想写一个登陆界面是不是一般都写两组TextView,EditText及一个Button,不过体验并不是太好,等等这些麻烦的的处理在Material Design TextInputLayout...它显示了一个欢迎标签(如果有的话,可以很容易地用徽标替换)和两个EditText元素,一个用于用户名,另一个用于密码。布局还包括一个触发登录序列的按钮。背景颜色是漂亮,平坦,浅灰色。...子元素必须是一个EditText 元素。...---- 实施onClick方法 首先必须处理按钮单击。有很多方法可以处理按钮点击。...在设置错误消息之前启用此功能setError 意味着在显示错误时此布局不会更改大小。您应该结合这两种方法进行一些测试,以便您实际看到 我在说什么。
; 2、在Android工程中设计UI界面; 3、代码实现业务逻辑; 电话拨号器的代码: //初始化布局文件中的控件 et_phone = (EditText) findViewById(R.id.et_phone...}); 15.四种点击事件 (1)采用内部类的方式去实现OnClickListener (2)匿名内部类 (3)当前类imp OnClickListener (4)onclick 1、设置按钮的单击事件的监听器...intent.setData(Uri.parse("tel://"+phone)); startActivity(intent); } } //别忘记给按钮添加一个单击事件的监听器...bt_call.setOnClickListener(new MyOnClickListener()); 3、在布局文件中给按钮添加一个单击事件的响应方法,然后在代码中实现这个方法 (1)在布局文件中给按钮添加一个单击事件的响应方法...//view 表示的是按钮这个视图 public void call(View view){ //拨打电话号码 String phone = et_phone.getText().toString
需求场景 需要同时对多个事件进行联合判断 如,填写表单时,需要表单里所有信息(姓名、年龄、职业等)都被填写后,才允许点击 “提交” 按钮 2....功能说明 此处采用 填写表单 作为联合判断功能展示 即,表单里所有信息(姓名、年龄、职业等)都被填写后,才允许点击 “提交” 按钮 3....传入EditText控件,点击任1个EditText撰写时,都会发送数据事件 = Function3()的返回值(下面会详细说明) * 3....TextUtils.isEmpty(name.getText()) && (name.getText().toString().length() > 2 && name.getText().toString...TextUtils.isEmpty(age.getText()); // 3.
比如:view.AddView(...). 4.在追加的父控件内时,可以指定布局的方式。 在动态添加完毕后,我们还需要能够获得对这些动态添加后的控件的值。...在将创建好的子控件添加到它的父容器控件时,可以同时指定一个布局参数。这个布局参数指示了这个子控件如何在父容器控件里呈现。...从视图中读取控件的内容: 我们在一个按钮的单击事件里写下这样的代码 StringBuffer sb = new StringBuffer(); for(int i = 0 ; igetText() )); } Toast.makeText(getApplicationContext(), sb.toString(), 0).show(); 如上面的代码显示。...editText = null; editText = new EditText(getContext()); TableRow.LayoutParams rowSpanLayout
这个方法有多个重载版本,适应于不同的情况,既可以对使用文件路径作为参数,也可以使用描述文件位置的Uri作为参数 prepare() 在开始播放之前调用这个方法完成媒体文件的准备工作 start() 开始播放媒体文件文件...; import android.widget.Toast; public class MainActivity extends Activity { private EditText editText...} } }; private void initMediaPlayer() // 初始化MediaPlayer对象 { path = editText.getText...因为模拟器中没有媒体文件,所以用的真机进行的测试,单击“开始”按钮: ? 单击“暂停”按钮: ? 单击“停止”按钮之后又变成了第一幅图。...接下来在媒体文件路径输入控件EditText中输入一个视频的绝对路径: ? 成功的播放出来了视频!
Bundle对象封装的数据时,需要先创建对应的Bundle对象,然后再根据存入的key值取出value。...和一个Button按钮,分别用于输入内容和单击“注册”按钮进行数据传递。...().toString().trim()); intent.putExtra("password", mPasswordEt.getText().toString...,如桌Activity设置了该属性,则跳到该Activity页面时标题栏会显示在Activity中配置的名称,否则显示在Application中配置的名称。...运行程序,在MainActivity的文本框中输入对应信息,可以看到左图所示效果。单击“注册”按钮,此时会跳转到SecondActivity界面,显示输人的信息,如右图所示。 ?
现在开源的网络通信库有很多,都可以替代HttpURLConnection,其中OkHttp是很出色的了,在介绍之前,先来了解一下AsyncHttpCilent。...= et_username.getText().toString().trim(); String pwd = et_password.getText().toString().trim...IOException e) { e.printStackTrace(); } // 这个回调是在子线程...(), "gbk"); showResponse(res); } }); } } 异步请求的打印结果与注意事项与同步请求时相同...或者用runOnUiThread方法执行 3,同步请求时,call.execute()需要放在子线程执行 activity_main.xml <?
在布局文件里加入两个按钮(button),一个控制连接,一个控制发送消息;四个输入文本框(edittext),一个填写发送的信息内容,一个显示服务器发来的消息。...(ipAddress, port);//创建连接地址和端口-------------------这样就好多了 但是由于在android几开始,不允许在主线程里连接服务器,所以只好让按钮点击后启动一个线程里面写上面的东西...Button SendButton;//定义发送按钮 EditText IPEditText;//定义ip输入框 EditText PortText;//定义端口输入框 EditText MsgText...Button SendButton;//定义发送按钮 EditText IPEditText;//定义ip输入框 EditText PortText;//定义端口输入框 EditText MsgEditText...SendButton = (Button) findViewById(R.id.Send_Bt);//获得发送按钮对象 IPEditText = (EditText)
SharedPreferences来保存密码和账号,也许有些人会考虑的数据库,但是我个人认为对于保存简单的数据,使用的数据库就大材小用了,SharedPreferences比较轻量级 首先写好布局,只有两个输入框和一个按钮...,点击按钮保存账号和密码 save.setOnClickListener(new View.OnClickListener() { @Override public...Toast.LENGTH_SHORT).show(); } } }); 当我们保存账号和密码后,想要在第二次打开应用时直接写密码和账号,还有在加载页面时获取数据...//获取info文件的内容,第一参数为保存时的key,第二个是如果获取不到的默认值 String numberStr1 = sp.getString("number","");...当文件存在就读取,如果不存在就创建 sp = getSharedPreferences("info", MODE_PRIVATE); //获取info文件的内容,第一参数为保存时的
② onSuccess()请求成功时回调此方法,其中“t”为返回结果。 ③ onFailure()请求失败时回调此方法。 ④ onLoading()在请求响应过程中,每隔1秒回调一次此方法。...点击按钮后就会加载一张网络图片,结果如下: ? 哈哈,是不是很简单,同时也很给力啊!...layout_height="wrap_content" 47 android:text="内容:" /> 48 49 执行结果如图,在编辑框输入内容后,单击保存到数据库按钮...,程序会执行fd.save方法(如左图),然后我们单击读取数据按钮,就会从数据库中读取出来数据,并显示在下面(如右图) ?...然后我们在验证一下,是否真的插入了数据库,关闭程序,重新打开后直接点击读取数据按钮,会看到仍然可以读取之前保存过的内容,由于在代码中,只取了数据表中的第一行内容,所以多次保存后仍然只显示第一次写入的数据
第一个例子,显示网址 首先创建工程 按照提示填入 我使用的是2.3版本,所以Min SDK Version填10 修改/res/layout/下main.xml文件 加入按钮 对应的程序文件如下:...第二个例子,跳转页面并提交数据 用刚才建好的工程 复制一个main.xml并且更名为welcome.xml 配置界面如下,并且在main.xml中加入文本框和登陆按钮 welcome.xml中设置如下,...startActivity(openWelcomeActivityIntent); 新用到了Bundle,这个是在对个Activity之间传递数据用的,这个例子中将信息放入的方法是putExtras 在接受端...REQUESR_ASK); } }); } /* * 通过重载这个方法,得到返回的结果 requestCode 开启请求Intent时对应的请求码...REQUESR_ASK); @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) 在login.java
最近做公司项目的时候,经常会遇到一个问题,就是我为某个控件如EditText设置requestfocus()的时候不管用,比如说登陆的时候,我判断下用户输入的密码,如果正确就登陆,错误就提示密码错误,...并且输入框获取焦点,但是实际中确不起作用 package com.example.hfs.requestfocusdemo; import android.content.Intent; import...public class MainActivity extends AppCompatActivity implements View.OnClickListener { private EditText...) this.findViewById(R.id.et_username); mPassWord= (EditText) this.findViewById(R.id.et_password...123456".equals(mPassWord.getText().toString())){ Toast.makeText(this,"密码错误,请重新输入",Toast.LENGTH_SHORT
由于没有Edittext 控件,所以,没有可以拖进来的..... ? ? 选择自适应 ? 如果没有提示 可以 CTRL + ALT +空格 ? ? ? ?...;//定义两个EditText变量,变量名字我一般设置的和先前页面里面的一样 Button buttonActivityMain1;//连接按钮 @Override protected...;//定义两个EditText变量,变量名字我一般设置的和先前页面里面的一样 Button buttonActivityMain1;//连接按钮 Socket socket;//定义一个...getText().toString())) ?...;//定义两个EditText变量,变量名字我一般设置的和先前页面里面的一样 Button buttonActivityMain1;//连接按钮 Socket socket;//定义一个
先建立一个新的activity 他会自动生成两个文件一个是MainActivity,一个是activity_main2.xml 第二步:打开第一个页面的Java文件MainActivity 在页面中写入跳转功能...private EditText mEtUser; // 用户名输入框 private EditText mEtPassword; // 密码输入框 @Override...在onCreate()方法中,设置了布局文件和初始化控件。 为按钮(mBtnLogin)设置了点击事件监听器(OnClickListener),当按钮被点击时执行相应的逻辑。...在点击事件中,获取用户名和密码输入框中的文本内容,并进行判断,如果用户名和密码匹配,则跳转到MainActivity2页面,否则可以进行登录失败的处理。 通过上面两步就可以完成简单的跳转功能实现了。...需要注意的地方 不过我们要注意的是,按钮的id也就是按钮对应的名称要和你定义的一样。 这里我将我按钮对应的id代码所在的xml文件全部奉上。 <?
et_qqnumber.setText(qq); et_passwd.setText(passwd); cb_remember.setChecked(isRemember); // 恢复时也把记住密码的勾选上...} /** * 登录按钮的点击事件 * * @param view */ public void login(View view) {...String qq = et_qqnumber.getText().toString().trim(); String passwd = et_passwd.getText...} catch (IOException e) { e.printStackTrace(); } } /** * 登录按钮的点击事件...* * @param view */ public void login(View view) { String qq = et_qqnumber.getText
context) { super(context); init(); // 初始化该组件时,对EditText_Clear进行初始化 ->>步骤2...setCompoundDrawablesWithIntrinsicBounds(Drawable left, Drawable top, Drawable right, Drawable bottom)介绍 // 作用:在EditText...X轴上的起点 y:组件在容器Y轴上的起点 width:组件的长度 height:组件的高度 } /** * 步骤3:通过监听复写EditText本身的方法来确定是否显示删除图标...显示 "删除搜索记录"按钮 if (tempName.equals("") && cursor.getCount() !...当输入框为空 & 数据库中有搜索记录时,才显示 "删除搜索记录"按钮 if (tempName.equals("") && cursor.getCount() !
领取专属 10元无门槛券
手把手带您无忧上云