首先我要做的是一个局部的登陆注册布局切换,在两个布局中设置不同按钮,然后通过点击事件进行切换
Activyty实现OnClickListener接口,
@Override
protected void onCreate(Bundle savedInstanceState) {
Button buttonReg = (Button)findViewById(R.id.button_register);
buttonReg.setOnClickListener(this);
}
@Override
public void onClick(View v) {
}
这样做是无法绑定事件的,甚至无法正常启动APP
findViewById可以获取到按钮,但是不能赋值给buttonReg,导致buttonReg为空,绑定事件就出错了,可能因为我设置的起始活动就是登陆,所以导致我无法启动,其他有待考察。
如果要绑定事件的话,首先要成功获取到控件,下面是绑定控件的方法
//控件绑定
View view = View.inflate(getApplicationContext(),R.layout.login_fragment,null);
buttonLogin = (Button)view.findViewById(R.id.button_login);
buttonReg = (Button)view.findViewById(R.id.button_reg);
<Button
...省略
android:onClick="otherClick"
...
/>
在当前的Activity中新建一个方法
public void otherClick(View view){
FragmentTransaction transaction = getFragmentManager().beginTransaction();
hideAllFragment(transaction);
switch (view.getId()){
case R.id.button_login:
break;
case R.id.button_reg:
Toast.makeText(LoginActivity.this,"click",Toast.LENGTH_LONG).show();
if (regFragment==null){
regFragment = RegFragment.createInstance();
transaction.add(R.id.login_fragment_container,regFragment);
}else{
transaction.show(regFragment);
}
break;
}
transaction.commit();
}
这样就可以实现不同布局间的绑定点击事件