Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用fragment访问按钮?_Android_Fragment - Fatal编程技术网

Android 如何使用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

这里给出了我的完整代码。但不显示活动。 添加clickListener()时显示空指针异常

如何使用fragment访问按钮

//无法添加完整的代码。显示并添加更多详细信息//

 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函数中的错误。