片段类问题中的多个按钮?

时间:2013-11-30 15:40:35

标签: android button android-fragments android-fragmentactivity

我有一个问题成功地开启了新的活动 从这些多个按钮。我是新编码的。有人可以帮忙吗 我有这个问题..

我使用了片段,我无法上班,请帮忙。 到目前为止,这是我的代码。 谢谢

     public class CreditFragment1 extends Fragment {
     private static final View View = null;
         Button balance;
         Button recharge;
         Button share;
         Button buy;
     public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        return (LinearLayout) inflater.inflate(R.layout.credit_frag1_layout,
                container, false);

    // at the next line below i get "Unreachable code"
     balance =  (Button) getView().findViewById(R.id.balance_bt);
     recharge =  (Button) getView().findViewById(R.id.recharge_bt);
     share =  (Button) getView().findViewById(R.id.share_bt);
     buy =  (Button) getView().findViewById(R.id.buy_bt);


     OnClickListener balanceListener = new OnClickListener() {            
         public void onClick(View view) {
             setContentView(R.layout.balance_layout);
             Intent BalanceIntent = new Intent(getActivity(),BalanceActivity.class);
             startActivity(BalanceIntent);
            }
        private void setContentView(int balanceLayout) {
            // TODO Auto-generated method stub

        }
     };

     OnClickListener rechargeListener = new OnClickListener() {            
         public void onClick(View view) {
             setContentView(R.layout.recharge_layout);
             Intent BalanceIntent = new Intent(getActivity(),RechargeActivity.class);
             startActivity(BalanceIntent);
            }
        private void setContentView(int rechargeLayout) {
            // TODO Auto-generated method stub

        }
     };
     OnClickListener shareListener = new OnClickListener() {            
         public void onClick(View view) {
             setContentView(R.layout.share_layout);
             Intent BalanceIntent = new Intent(getActivity(),ShareActivity.class);
             startActivity(BalanceIntent);
            }
        private void setContentView(int shareLayout) {
            // TODO Auto-generated method stub

        }
     };

     OnClickListener buyListener = new OnClickListener() {
         public void onClick(View view) {
             setContentView(R.layout.buy_layout);
             Intent BalanceIntent = new Intent(getActivity(),BuyActivity.class);
             startActivity(BalanceIntent);
            }
        private void setContentView(int buyLayout) {
            // TODO Auto-generated method stub

        }
     };
            balance.setOnClickListener(balanceListener);
            recharge.setOnClickListener(rechargeListener);
            share.setOnClickListener(shareListener);
            buy.setOnClickListener(buyListener);     
            return View;
     }
}

2 个答案:

答案 0 :(得分:1)

onCreateView更改为

public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.credit_frag1_layout,container, false);
    balance =  (Button)view.findViewById(R.id.balance_bt);
    balance.setOnClickListener(this);
    // similarly initialize other buttons
    return view;
 }

您的班级也可以实施OnClickListener

  public class CreditFragment1 extends Fragment implements OnClickListener {

在onCreateView

 balance.setOnClickListener(this);

然后覆盖onClick

@Override
public void onClikc(View v)
{
        switch(v.getId())
        {
          case R.id.balance_bt :
           // balance button clicked
          break; 
          case R.id.recharge_bt
          // recharge button clicked :
          break;   
          // similarly for other buttons
        }
 }

此外,我不确定您在OnClickListener中尝试使用setContentView(R.layout.balance_layout);做什么。删除setContentView(R.layout.balance_layout);

如果您需要导航到其他活动,请使用startActivtiy(intent)

答案 1 :(得分:0)

你想做什么?

首先,setContentView(int shareLayout)中的方法onClickListener不会为您做任何事情。特别是如果你把它留空。

我认为你应该从我所理解的事情开始,就像这样开始所希望的活动:

OnClickListener shareListener = new OnClickListener() {            
     public void onClick(View view) {
         Intent BalanceIntent = new Intent(getActivity(),ShareActivity.class);
         startActivity(BalanceIntent);
        }
};

然后,在onCreate()课程的ShareActivity内,放置:

setContentView(R.layout.share_layout);

并从您的setContentView个活动中删除所有onClickListener()

有关详细信息,请参阅Starting another activity教程。

希望它有所帮助。