android按钮不起作用

时间:2016-09-26 17:01:48

标签: android button

我在这里搜索了很多帖子,但解决方案看起来与我的代码相同,但不起作用。此代码位于片段中的方法内。奇怪的是,我在另一个片段中拥有完全相同的代码并且有效。

final Button acceptButton = (Button) getActivity().findViewById(R.id.button_accept);
acceptButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.i(LOG_TAG, "Accept");
                // SOME OTHER STUFF
            }
}

相关的代码完全相同。它只是改变我寻找按钮的id。问题是它没有进入de listener。无论如何我会发布它以防有人发现它有用。

final Button acceptButton = (Button) getActivity().findViewById(R.id.button_add);
acceptButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
                Log.i(LOG_TAG, "Add");
                // SOME OTHER STUFF
}

两个代码都在不同的片段中。这两个代码都写在覆盖的onOptionsItemSelected内。除了我遇到麻烦的情况下的听众,它就会进入。

我会发布onOptionItemSelected的确切代码,如果我错过了一些更简单的东西,它就不起作用。

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == R.id.action_delete) {
            final LinearLayout deletePopup = (LinearLayout) getActivity().findViewById(R.id.delete_verification);
            deletePopup.setVisibility(View.VISIBLE);
            final Button acceptButton = (Button) getActivity().findViewById(R.id.button_accept);
            final Button cancelButton = (Button) getActivity().findViewById(R.id.button_cancel);
            Log.i(LOG_TAG, "Delete button clicked");
            acceptButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Log.i(LOG_TAG, "Accept delete");
                    deletePopup.setVisibility(View.INVISIBLE);
                    delete(getId().intValue());
                    getActivity().finish();
//                    load();
                }
            });
            cancelButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Log.i(LOG_TAG, "Cancel delete");
                    deletePopup.setVisibility(View.INVISIBLE);
                }
            });
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

提前致谢。

3 个答案:

答案 0 :(得分:0)

替换

  

final Button acceptButton =(Button)   。getActivity()findViewById(R.id.button_accept);

  

final Button acceptButton =(Button) view .findViewById(R.id.button_accept);

此处视图是片段布局

答案 1 :(得分:0)

尝试对包含View的{​​{1}}进行充气,然后使用此Button 找到View的ID,如:

Button

答案 2 :(得分:0)

我能够解决它。我错过了z轴。我打电话了

deletePopup.bringToFront();我解决了它

感谢所有人