我有一个片段,其中有一个按钮,并添加了一个按钮侦听器,这没有给出任何错误,但是当我单击按钮时似乎没有调用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);
}
}
答案 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;
}
}
}
希望这是有道理的。