????首先我要做的是一個(gè)局部的登陸注冊布局切換花履,在兩個(gè)布局中設(shè)置不同按鈕牍疏,然后通過點(diǎn)擊事件進(jìn)行切換
Activyty實(shí)現(xiàn)OnClickListener接口敌买,
@Override
protected void onCreate(Bundle savedInstanceState) {
Button buttonReg = (Button)findViewById(R.id.button_register);
buttonReg.setOnClickListener(this);
}
@Override
public void onClick(View v) {
}
這樣做是無法綁定事件的藤乙,甚至無法正常啟動(dòng)APP
????findViewById可以獲取到按鈕猜揪,但是不能賦值給buttonReg惭墓,導(dǎo)致buttonReg為空坛梁,綁定事件就出錯(cuò)了,可能因?yàn)槲以O(shè)置的起始活動(dòng)就是登陸腊凶,所以導(dǎo)致我無法啟動(dòng)划咐,其他有待考察拴念。
????如果要綁定事件的話,首先要成功獲取到控件褐缠,下面是綁定控件的方法
//控件綁定
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"
...
/>
????在當(dāng)前的Activity中新建一個(gè)方法
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();
}
????這樣就可以實(shí)現(xiàn)不同布局間的綁定點(diǎn)擊事件