片段中的按钮上的onClickListener不执行任何操作

时间:2016-05-10 11:12:52

标签: android android-fragments button onclicklistener android-fragmentactivity

我有一个片段,其中有一个按钮,并添加了一个按钮侦听器,这没有给出任何错误,但是当我单击按钮时似乎没有调用onClick。我尝试在onActivityCreated函数中添加按钮监听器,但这仍然不起作用。 感谢。

package com.aaronnebbs.table_booker.Fragments;

import android.content.Context;
import android.os.Bundle;
import android.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;


import com.aaronnebbs.table_booker.Objects.Session;
import com.aaronnebbs.table_booker.R;


public class userInformation extends Fragment {

    private Session session;

    public userInformation() {
    }

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

        View view = inflater.inflate(R.layout.fragment_user_information, container, false);
        Button viewBookings = (Button) view.findViewById(R.id.bookingsFragmentButton);


        viewBookings.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                System.out.println("Button Clicked");
            }
        });

        Bundle bundle = getArguments();

        if(bundle != null){
            session = (Session)bundle.getSerializable("session");
            System.out.println("IN FRAGMENT: " + session.getUser().getUsername());
        }else{
            System.out.println("NO BUNDLE");
        }

        return view;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

       // TextView text = (TextView) getView().findViewById(R.id.usernameFragment);
      //  text.setText("Username: " + session.getUser().getUsername());

    }

    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
    }

}

1 个答案:

答案 0 :(得分:1)

确保您的fragment_user_information必须包含按钮 bookingsFragmentButton ID&您尚未按xml分配 onClick ,例如android:onClick="myMethod"&使用 toast 而不是日志作为可见效果。

修改1:

 extends Fragment implements View.OnClickListener {

//  onCreateView

viewBookings.setOnClickListener(this);

@覆盖     public void onClick(查看v){

    switch (v.getId())
    {
        case R.id.bookingsFragmentButton:

            break;
     }
  }

 }

希望这是有道理的。