Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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 按钮未在纵向模式下单击_Android - Fatal编程技术网

Android 按钮未在纵向模式下单击

Android 按钮未在纵向模式下单击,android,Android,我有一个按钮,通过代码将onclick侦听器附加到该按钮上。我必须通过代码来解释它,因为它在一个片段中 在横向模式下,侦听器工作正常,但在纵向模式下则不行。甚至没有“咔嗒”声 在我的xml文件中,我将按钮的初始可见性设置为不可见,然后在用户单击按钮所在视图组中的单选按钮时使其可见。单选按钮的onclicklisteners在纵向和横向模式下都工作正常 现在,如果我删除xml中的“android:visibility=”invisible”代码,onclickstener在纵向模式下工作得很好!但

我有一个按钮,通过代码将onclick侦听器附加到该按钮上。我必须通过代码来解释它,因为它在一个片段中

在横向模式下,侦听器工作正常,但在纵向模式下则不行。甚至没有“咔嗒”声

在我的xml文件中,我将按钮的初始可见性设置为不可见,然后在用户单击按钮所在视图组中的单选按钮时使其可见。单选按钮的onclicklisteners在纵向和横向模式下都工作正常

现在,如果我删除xml中的“android:visibility=”invisible”代码,onclickstener在纵向模式下工作得很好!但当然我需要它在用户单击单选按钮之前不可见,否则UI就没有意义了。真的很奇怪

这是我的密码:

private void setOnClickForSaveButton(View v) {

        Button changeFundsSave = (Button) v.findViewById(R.id.change_funds_save);
        changeFundsSave.setOnClickListener(saveListener);

    }

Button.OnClickListener saveListener = new Button.OnClickListener() {

        @Override
        public void onClick(View v) {

            //Get the rootview
            View rootView = v.getRootView();

            EditText changeFundsEdit = (EditText) rootView.findViewById(R.id.change_funds_edit);

            if(changeFundsEdit.getText().toString().equals("")) {
                new AlertDialog.Builder(getActivity())
                .setTitle( "" )
                .setMessage( "Enter the number of units" )
                .setPositiveButton( "Ok", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {


                    }
                })
                .show();
                return;


            }


        }
    };


    private void setOnClicksForRadioButtons(View v) {

        RadioButton rb1 = (RadioButton)v.findViewById(R.id.add_units);
        RadioButton rb2 = (RadioButton)v.findViewById(R.id.remove_units);
        RadioButton rb3 = (RadioButton)v.findViewById(R.id.set_units);

        rb1.setOnClickListener(addRemoveSetButtonListener);
        rb2.setOnClickListener(addRemoveSetButtonListener);
        rb3.setOnClickListener(addRemoveSetButtonListener);

    }





    OnClickListener addRemoveSetButtonListener = new OnClickListener() {

        @Override
        public void onClick(View v) {

            // Since we only have the radiobutton view, we need to get the parent
            View rootView = v.getRootView();

            //Make the controls visible
            TextView changeFundsText = (TextView) rootView.findViewById(R.id.change_funds_text);
            EditText changeFundsEdit = (EditText) rootView.findViewById(R.id.change_funds_edit);
            Button changeFundsSave = (Button) rootView.findViewById(R.id.change_funds_save);

            changeFundsText.setVisibility(View.VISIBLE);
            changeFundsEdit.setVisibility(View.VISIBLE);
            changeFundsSave.setVisibility(View.VISIBLE);


        }

    };


}
我猜是这样

1) 对于在setOnClickForSaveButton中传递的视图,您是否再次找到DViewById?因为旧视图将被销毁,并且在更改屏幕方向时将创建一个视图 2) 您是否有R.id.change\u funds\u save的多个id
3) 在onclick(v)的第一行添加日志若要查看它是否被调用,但转到了另一个您没有预料到的分支。

除非您从
布局区和
布局端口加载两个单独的xml布局文件,否则横向模式和纵向模式之间应该没有太大区别。也就是说,我要大胆猜测一下,您的应用程序可能不是w由于配置更改而无法正常工作。请告诉我这是否属实…例如,您的应用程序是否开始工作,但在旋转屏幕时停止工作


如果这是真的,你应该研究活动生命周期是如何影响你的视图的,
onClickListener
s.

解决了这个问题!在纵向模式下,像其他人一样,我在一个单独的活动中加载一个片段。出于习惯,我调用setContentView(某个东西)在加载片段之前!所以最终两个布局相互重叠,可见和不可见按钮相互重叠,事情一定搞砸了。该死,我不确定我是否喜欢片段的概念。我是第一次使用它们。但也许我需要先学会如何正确地连接它们,然后再开始使用习惯它们:)非常感谢您的帮助

解决了这个问题!在纵向模式下,像其他人一样,我在一个单独的活动中加载一个片段。出于习惯,我调用setContentView(某物)在加载片段之前!所以最终两个布局相互重叠,可见和不可见按钮相互重叠,事情一定搞砸了。该死,我不确定我是否喜欢片段的概念。我是第一次使用它们。但也许我需要先学会如何正确连接它们我已经习惯了:)非常感谢您的帮助您应该将此作为答案发布,然后接受。这样您就可以正式解决问题:)可以-只要我有足够的代表:)问题解决-我正在使用setContentView进行活动,同时还在R.id.content中设置一个片段!感谢您的回复。