Android 如何使用fragment访问按钮?
这里给出了我的完整代码。但不显示活动。 添加clickListener()时显示空指针异常 如何使用fragment访问按钮 //无法添加完整的代码。显示并添加更多详细信息//Android 如何使用fragment访问按钮?,android,fragment,Android,Fragment,这里给出了我的完整代码。但不显示活动。 添加clickListener()时显示空指针异常 如何使用fragment访问按钮 //无法添加完整的代码。显示并添加更多详细信息// public class Activity extends Activity{ private static final String KEY_SUCCESS="success"; @Override protected void onCreate(Bundle s
public class Activity extends Activity{
private static final String KEY_SUCCESS="success";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_welcome);
FragmentManager fragmentManager=getFragmentManager();
FragmentTransaction transaction=fragmentManager.beginTransaction();
Fragment fragment=new PlaceholderFragment();
transaction.add(R.id.container,fragment);
transaction.addToBackStack("welcome");
transaction.commit();
}
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {
Button loginButton;
private String userNameString;
private String passwordString;
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView;
rootView = inflater.inflate(R.layout.fragment_welcome, container, false);
try{
loginButton= (Button) rootView.findViewById(R.id.LoginFormButton);
}catch (NullPointerException e){
e.printStackTrace();
}
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent logIntent = new Intent(getActivity(), BearerLoggedActivity.class);
startActivity(logIntent);
}
});
return rootView;
}
}
}
如果我理解正确,您需要的是:
fragment.getView().findViewById(id);
如果我理解正确,您需要的是:
fragment.getView().findViewById(id);
这应该可以做到,但我通常更喜欢让我的所有侦听器和业务逻辑都在片段中,使活动尽可能少。一个小演示:
public class FirstFragment extends Fragment {
Button btn;
private OnFragmentClickListener listener;
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.first_fragment,
container, false);
//Do stuff to the fragment view in here if you want
btn = (Button) v.findViewById(R.id.breplace);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent mainIntent = new Intent(getActivity(),
MyActivity.class);
startActivity(mainIntent);
}
});
return v;
}
希望这有帮助
这应该可以做到,但我通常更喜欢让我的所有侦听器和业务逻辑都在片段中,使活动尽可能少。一个小演示:
public class FirstFragment extends Fragment {
Button btn;
private OnFragmentClickListener listener;
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.first_fragment,
container, false);
//Do stuff to the fragment view in here if you want
btn = (Button) v.findViewById(R.id.breplace);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent mainIntent = new Intent(getActivity(),
MyActivity.class);
startActivity(mainIntent);
}
});
return v;
}
希望这有帮助 请将此添加到您的Fragment类中
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.image_layout, container, false);
//ImageView imageView = (ImageView) view.findViewById(R.id.imageView1);
//imageView.setImageResource(imageResourceId);
//imageView.setBackgroundResource(imageResourceId);
Button button = (Button) view.findViewById(R.id.btn1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent mainIntent = new Intent(getActivity(),
NextActivity.class);
startActivity(mainIntent);
}
});
return view;
}
您的问题将得到解决请将此添加到您的Fragment类中
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.image_layout, container, false);
//ImageView imageView = (ImageView) view.findViewById(R.id.imageView1);
//imageView.setImageResource(imageResourceId);
//imageView.setBackgroundResource(imageResourceId);
Button button = (Button) view.findViewById(R.id.btn1);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent mainIntent = new Intent(getActivity(),
NextActivity.class);
startActivity(mainIntent);
}
});
return view;
}
您的问题将得到解决我可以这样使用意图吗??公共静态类占位符片段扩展片段{public PlaceholderFragment(){}@Override public View onCreateView(布局平坦充气器、视图组容器、Bundle savedInstanceState){View-rootView;rootView=inflater.inflate(R.layout.fragment_-welcome,container,true);返回rootView;}}我正在活动中使用此类。在调用return rootView之前,单击listener实现按钮并启动活动。发布日志猫,我们应该能够调试添加的日志猫。请检查是否可以这样使用意图??公共静态类占位符片段扩展片段{公共占位符片段(){}@Override public View onCreateView(LayoutInflater充气器,ViewGroup容器,Bundle savedInstanceState){View-rootView;rootView=inflater.inflate(R.layou.fragment_-welcome,container,true);return-rootView;}我正在活动中使用此类。在调用return rootView之前,单击listener实现按钮并启动活动。发布日志猫,我们应该能够调试添加的日志猫。请检查它哪一个是异常?如果是NullPointerException,则您调用该方法的时间过快。尚未创建布局,但是。哪一个是例外?如果它是NullPointerException,那么您调用该方法的时间太短。布局尚未创建。我仍然没有被清除。WelcomeActivity.java中的第45行是什么?loginButton.setOnClickListener(new View.OnClickListener(){}现在我被清除。我在ActivityCreated()上使用片段并实现了点击事件。谢谢大家。我仍然没有被清除。WelcomeActivity.java中的第45行是什么?loginButton.setOnClickListener(new View.OnClickListener(){}现在我被清除了。我使用ActivityCreated()中的片段并实现了click事件。谢谢大家。我的问题仍然存在。显示NullPointerException。@Rashid何时加载或何时单击按钮?它不显示活动。在此之前,它显示致命错误。这意味着在片段加载之前,它将显示错误,或者当单击按钮时,它将不显示任何活动City?是的,当然。它没有显示任何内容。显示onclicklistener函数中的错误。我的问题仍然存在。显示NullPointerException。@Rashid何时加载或当您单击按钮时?它没有显示活动。在此之前显示致命错误。这意味着在片段加载之前,它将显示错误或单击按钮时n那么它将不显示任何活动?是的,当然。它不显示任何内容。显示onclicklistener函数中的错误。