我在这里搜索了很多帖子,但解决方案看起来与我的代码相同,但不起作用。此代码位于片段中的方法内。奇怪的是,我在另一个片段中拥有完全相同的代码并且有效。
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);
}
提前致谢。
答案 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();
我解决了它
感谢所有人