事件绑定方式
在activity_main.xml中,
<Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button" android:onClick="test" tools:layout_editor_absoluteX="166dp" tools:layout_editor_absoluteY="147dp" />
这里设置了onClick绑定的函数为test. 因此需要在MainActivity.java中增加对应的函数。
public void test(View view) { Log.d("hengdi","button被点击了"); }
事实上,及时没有绑定函数,也能正常编译,但是点击button的时候,app会奔溃。
- 方式二:这块代码要放在 onCreate 方法中
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
Log.d("hengdi","testbutton被点击了");
}
});
方式三,其实思路和第二种一样
Button button = findViewById(R.id.button); button.setOnClickListener(new Myclass()); class Myclass implements View.OnClickListener{ @Override public void onClick(View v) { Log.d("hengdi","test 333 button被点击了"); } }
方式四
让本类继承 View.OnClickListener,并实现 onClick 方法。public class MainActivity extends AppCompatActivity implements View.OnClickListener 此时,button可以直接绑定本类。 button.setOnClickListener(new MainActivity()); button.setOnClickListener(this); button.setOnClickListener(MainActivity.this); 有多个button的情况,经常这样使用: @Override public void onClick(View v) { switch (v.getId()){ case R.id.button: Log.d("hengdi","new button 被点击了"); break; } Log.d("hendi","switch 外面"); }
输出方式:
Log(tag,msg) 第一个参数为输出的tag,第二个参数为输出的内容
Log.d("hengdi","new button 被点击了");
Toast
Toast.makeText(MainActivity.this,"Toast输出的内容",Toast.LENGTH_LONG).show();
指定线性布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
因为要在其他函数中使用,定义为全局属性
public EditText edittext;
在 onCreate 函数中
edittext = findViewById(R.id.editTextTextPersonName2);
在 onclik函数中 ,从而可以获取到 edittext 中的值。往往登录中会使用trim函数(类似python中的strip)
String username = edittext.getText().toString().trim();
Log.d("hengdi","new button 被点击了"+ "" +username+""+ TextUtils.isEmpty(username));
TextUtils.isEmpty(username) 用来判断是否是空值
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。