【问题标题】:Multiple Buttons In Fragment Class Issue?片段类问题中的多个按钮?
【发布时间】:2013-11-30 15:40:35
【问题描述】:

我遇到问题成功打开新活动 从这些多个按钮。我是编码新手。有人可以帮忙吗 我有这个问题..

我使用了片段,但我无法开始工作,请帮忙。 到目前为止,这是我的代码。 谢谢

     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;
     }
}

【问题讨论】:

  • 您遇到了什么问题?
  • 面临的问题是我无法弄清楚打开这些相应按钮的活动和布局的硬件..我尝试的任何方法都不起作用..

标签: android button android-fragments android-fragmentactivity


【解决方案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);

如果您需要导航到不同的 Activity,请使用 startActivtiy(intent)

【讨论】:

    【解决方案2】:

    你想做什么?

    一方面,onClickListener 中的方法 setContentView(int shareLayout) 不会为您做任何事情。特别是如果您将其留空。

    根据我的理解,我认为您应该做的是像这样开始所需的活动:

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

    然后,在您的 ShareActivity 类的 onCreate() 中,输入:

    setContentView(R.layout.share_layout);
    

    并从您的每个 onClickListener() 事件中删除所有 setContentView

    详情请参阅Starting another activity 教程。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-30
      • 2014-08-26
      • 1970-01-01
      • 2017-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多