1.监听事件的主要两种方法
回答:
因为java中封装要用到,private只能在类的内部可以用,就是子类也不可以用。哪么就做到了完全封装,一开始你可能不懂,是因为你没学到,java的封装特性。哪么都private了要怎么在外面用呢,有办法就是通过设置get和set2个方法来设置
public class MainActivity extends Activity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 在此处添加逻辑 }
}); }
}
这样虽然方便,但当监听方法较多时会导致结构混乱,
下面是实现接口方式注册监听器:
public class MainActivity extends Activity implements OnClickListener {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button:
// 在此处添加逻辑
break;
default:
break; }
} }
这样即使监听方法较多时结构也较为清晰。
2.举例
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button button;
private Button button2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button) findViewById(R.id.button);
button2=(Button) findViewById(R.id.button_2);
button.setOnClickListener(this);
button2.setOnClickListener(this);
}
@Override
public void onClick(View v){
switch (v.getId()){
case R.id.button:
Toast.makeText(MainActivity.this,"you clicked botton1",Toast.LENGTH_SHORT).show();//此处添加逻辑
break;
case R.id.button_2:
Toast.makeText(MainActivity.this,"you clicked botton2",Toast.LENGTH_SHORT).show();
default:
break;
}
}
}
3.为什么大多数变量的声明都是private
private 是私有的只能在当前类里使用 不加修饰的是默认的package,详情如下: Java中public、package、protected、private的访问权限如下表所示 注:package权限就是默认的访问权限,也就是default package 只能被同类或者同一个包中的类访问 prtected 只能被同类,同一包中的类,或者不同包中的子类访问 同一个类 同一个包 不同包的子类 不同包的非子类 public 可访问 可访问 可访问 可访问 protected 可访问 可访问 可访问 package 可访问 可访问 private 可访问private 是私有的。那为什么要有private呢?
回答:
因为java中封装要用到,private只能在类的内部可以用,就是子类也不可以用。哪么就做到了完全封装,一开始你可能不懂,是因为你没学到,java的封装特性。哪么都private了要怎么在外面用呢,有办法就是通过设置get和set2个方法来设置