【问题标题】:About Click Button On Fragment关于片段上的单击按钮
【发布时间】:2016-07-29 05:11:51
【问题描述】:

我是新来的,所以我想问一下上面的标题,

我有这样的代码:

public class TanyaDokter extends Fragment {

View View;
public TanyaDokter(){}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    final View view = inflater.inflate(R.layout.activity_tanya_dokter, container, false);


    Button button = (Button)view.findViewById(R.id.button1);
    button.setOnClickListener(new OnClickListener()

    {   
        public void onClick(View v){
            switch(v.getId()){

            case R.id.button1:
            Intent intent1 = new Intent(view.getContext(), FormTanyaDokter.class);
                startActivity(intent1);
                break;

这段代码是成功点击一个按钮,但我想制作两个或更多按钮,所以我的问题是如何让这段代码可以处理两个或更多按钮点击。谢谢

【问题讨论】:

标签: android android-fragments button onclicklistener


【解决方案1】:

首先在xml文件中创建按钮:然后:有两种方式:

第一:

Button button = (Button)view.findViewById(R.id.button1);
Button button2 = (Button)view.findViewById(R.id.button2);
Button button3 = (Button)view.findViewById(R.id.button3);
button.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
 ----
}       

public void onClick(View v){
    switch(v.getId()){

    case R.id.button1:
        Intent intent1 = new Intent(view.getContext(), FormTanyaDokter.class);
        startActivity(intent1);
        break;

    case R.id.button2:
        //your action
        break;
    case R.id.button3:
        //your action
        break;
    }
}

第二

Button button = (Button)view.findViewById(R.id.button1);
Button button2 = (Button)view.findViewById(R.id.button2);
Button button3 = (Button)view.findViewById(R.id.button3);

button.setOnClickListener(new OnClickListener() {   

    public void onClick(View v){

        Intent intent1 = new Intent(view.getContext(), FormTanyaDokter.class);
        startActivity(intent1);

    }};

button2.setOnClickListener(new OnClickListener() {   

    public void onClick(View v) {
    }

});

button3.setOnClickListener(new OnClickListener() {   

    public void onClick(View v){
    }

});

【讨论】:

  • @duniabisnis 很高兴它有帮助。请接受答案并投票,以便它也可以帮助其他人。 :) 提前致谢。
【解决方案2】:

为了处理多个按钮点击事件,你必须这样做,

    public void onClick(View v){
        switch(v.getId()){

        case R.id.button1:
        Intent intent1 = new Intent(view.getContext(), FormTanyaDokter.class);
            startActivity(intent1);
            break;

       case R.id.button2:
       //your action
            break;
   }
 }

但我建议您在提出问题之前参考适当的文档,甚至可以查看Stackoverflow-Question

【讨论】:

    【解决方案3】:

    对于单个按钮

         Button cancel  = (Button) view.findViewById(R.id.button1);
         cancel.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                           // your logic here....
                        }
                    });
    

    用于多个按钮。

      Button cancel1  = (Button) view.findViewById(R.id.button1);
      Button cancel2  = (Button) view.findViewById(R.id.button2);
      Button cancel3  = (Button) view.findViewById(R.id.button3);
      cancel1 .setOnClickListener(this);
      cancel2 .setOnClickListener(this);
      cancel2 .setOnClickListener(this);
    

    此处为 OnClicked 句柄

     @Override
      public void onClick(View v){
                switch(v.getId()){
    
                case R.id.button1:
                Intent intent1 = new Intent(view.getContext(), FormTanyaDokter.class);
                    startActivity(intent1);
                    break;
     case R.id.button2:
                Intent intent1 = new Intent(view.getContext(), FormTanyaDokter.class);
                    startActivity(intent1);
                    break;
     case R.id.button3:
                Intent intent1 = new Intent(view.getContext(), FormTanyaDokter.class);
                    startActivity(intent1);
                    break;
    
        }
     }
    

    【讨论】:

      【解决方案4】:

      您可以在 xml 布局中添加更多按钮,然后通过此处理所有点击

       Button button = (Button)view.findViewById(R.id.button1);
          Button button2 = (Button)view.findViewById(R.id.button2);
          button.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  Intent intent1 = new Intent(view.getContext(), FormTanyaDokter.class);
                  startActivity(intent1);
              }
          });
      
          button2.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  Intent intent1 = new Intent(view.getContext(), SecondActivity.class);
                  startActivity(intent1);
              }
          });
      

      【讨论】:

        【解决方案5】:

        您还可以将 onClickListener 设置为变量,并将所有按钮设置为它。 例如

        View.onClickListener listener = new onClickListener()
        {
            void onClick...
        };
        button1.setOnClickListener(listener);
        button2.setOnClickListener(listener);
        button3.setOnClickListener(listener);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-02-18
          • 2014-07-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-04-30
          相关资源
          最近更新 更多