【问题标题】:How can i add another button intent beside previous one?如何在前一个按钮意图之外添加另一个按钮意图?
【发布时间】:2013-01-26 07:36:15
【问题描述】:

这是我的代码: 它包含一个名为 button1A 的按钮,当我单击它时,它会打开一个名为 list1 的列表。 如何为另一个名为 button2A 的按钮添加代码,该按钮以 List2 的形式打开列表。

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.View.OnClickListener;

import android.widget.Button;

public class Tab_1st extends Activity {

Button button1A;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tablayout1);

    addListenerOnButton();


}

public void addListenerOnButton() {

    button1A = (Button) findViewById(R.id.button1A);

    button1A.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            Intent a1 = new Intent(v.getContext(), List1.class);
            startActivity(a1);

        }
    });

}

}

【问题讨论】:

  • 为什么要创建 2 个按钮???相反,您可以创建一个选项卡布局,您可以在其中在单个活动中在 2 个列表项之间切换。尝试选项卡布局。

标签: android eclipse button android-intent


【解决方案1】:

使用switch-case 更改您的addListenerOnButton 方法以最小化代码并将单个OnClickListener 侦听器添加到多个按钮:

    public void addListenerOnButton() {

        button1A = (Button) findViewById(R.id.button1A);
        button1A.setOnClickListener(clicklistener);
        // add OnClickListener to second Button 
        button1B = (Button) findViewById(R.id.button1B);
        button1B.setOnClickListener(clicklistener);
    OnClickListener clicklistener = new View.OnClickListener() {
     @Override
      public void onClick(View v) {
        switch(v.getId()){

          case R.id.button1A: 
                    // start second List Activity
               Intent a1 = new Intent(v.getContext(), List1.class);
               startActivity(a1);
               break;

          case R.id.button2A: 
                     // start second List Activity
               Intent a2 = new Intent(v.getContext(), List2.class);
               startActivity(a2);
               break;

        }
       }
     };
   }

【讨论】:

    【解决方案2】:

    您可以根据需要添加更多点击侦听器。试试这样。

    public void addListenerOnButton() {
    
    button1A = (Button) findViewById(R.id.button1A);
    
    button1A.setOnClickListener(new OnClickListener() {
    
        @Override
        public void onClick(View v) {
    
            Intent a1 = new Intent(v.getContext(), List1.class);
            startActivity(a1);
    
        }
    });
    
    button2A = (Button) findViewById(R.id.button2A);
    
    button2A.setOnClickListener(new OnClickListener() {
    
        @Override
        public void onClick(View v) {
    
            Intent i = new Intent(v.getContext(), List2.class);
            startActivity(i);
    
        }
    });
    

    }

    【讨论】:

      【解决方案3】:

      实现这一点的一种方法是实现 OnClickListener。

      public class Tab_1st extends Activity implements OnClickListener {
      
      Button button1A;
      Button button2A;
      
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.tablayout1);
          button1A = (Button) findViewById(R.id.button1A);
          button2A = (Button) findViewById(R.id.button2A);
          button1A.setOnClickListener(this);
          button2A.setOnClickListener(this);
      }
      
      @Override
      public void onClick(View v) {
          if (v == button1A) {
              // Start Activity a1
              Intent a1 = new Intent(v.getContext(), List1.class);
              startActivity(a1);
          } else if (v == button2A) {
              // Start Activity a2
              Intent a2 = new Intent(v.getContext(), List2.class);
              startActivity(a2);
          }
      
      }
      
      }
      

      【讨论】:

        猜你喜欢
        • 2011-07-05
        • 2015-11-11
        • 2013-02-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多