Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏

7.5. Button

    
public class MainActivity extends AppCompatActivity {

//我们需要自己写一个常量作为requestCode,在请求result时传递进去
public static final int REQUEST_CODE_NORMAL = 100;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    
    Button button = (Button) findViewById(R.id.Button);

    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            startActivityForResult(new Intent(this,SecondActivity.class),REQUEST_CODE_NORMAL);
        }
    });	
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == REQUEST_CODE_NORMAL) {
        //获得Result数据并处理
        ...
        ...
    }
}
}
    
    
    
public class SecondActivity extends AppCompatActivity {   

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.save);
 
     Button button = (Button) findViewById(R.id.SaveButton);

    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {
            Intent intent = new Intent(this,MainResultActivity.class);
            intent.putExtra("content",etContent.getText().toString());
            setResult(1,intent);
            //发送Result数据给请求方,然后finish()
            finish();        
        }
    });	
}
}		
    
    

7.5.1. 启用禁用

        
myButton.setEnabled(false);			
        
        

7.5.2. 实现 OnClickListener 接口

        
package cn.netkiller.video;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private Button buttonVideoView;
private Button buttonSurfaceView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    buttonVideoView = (Button) findViewById(R.id.buttonVideoView);
    buttonVideoView.setOnClickListener(this);

    buttonSurfaceView = (Button) findViewById(R.id.buttonSurfaceView);
    buttonSurfaceView.setOnClickListener(this);
}

@Override
public void onClick(View v) {
    Intent intent;
    switch (v.getId()) {
        case R.id.buttonVideoView:
            startActivity(new Intent(MainActivity.this, VideoViewActivity.class));
            break;
        case R.id.buttonSurfaceView:

            break;
        default:
            break;
    }
}
}			
        
        

7.5.3. Fragment 中使用 Button

        
    Button buttonWifi = root.findViewById(R.id.buttonWifi);
    buttonWifi.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent();
            ComponentName componentName = new ComponentName("com.android.settings", "com.android.settings.wifi.WifiSettings");
            intent.setComponent(componentName);
            ResolveInfo resolveInfo = getActivity().getPackageManager().resolveActivity(intent, 0);
            if (resolveInfo != null) {
                startActivity(intent);
            }
        }
    });			
        
        

7.5.4. 圆形按钮

        
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:shape="oval"
android:useLevel="false"
tools:ignore="ResourceName">
<solid android:color="#FFa500" />
</shape>			
        
        
        
        <Button
            android:id="@+id/imeButton"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_gravity="right"
            android:background="@drawable/rond"
            android:text="+"
            android:textColor="#ffffff"
            android:textSize="50dp" />			
        
        

7.5.5. ImageButton

7.5.5.1. 触摸事件

        
    ImageButton imageButtonSpeak = findViewById(R.id.imageButtonSpeak);
    imageButtonSpeak.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            System.out.println("图片按钮 touch 事件");

            int action = motionEvent.getAction();
            if (action == MotionEvent.ACTION_UP) {
                System.out.println("按下了图片按钮。");
            } else if (action == MotionEvent.ACTION_DOWN) {
                System.out.println("松开了图片按钮。");
            } else if (action == MotionEvent.ACTION_MOVE) {
                System.out.println("按下并移动了图片按钮。");
            }
            return false;
        }
    });