安卓逆向 37 button

事件绑定方式

  • 在activity_main.xml中,

    这里设置了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();

指定线性布局

 
因为要在其他函数中使用,定义为全局属性
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) 用来判断是否是空值

你可能感兴趣的:(android)