2016-09-26 50 views
-1

我在這裏搜索了很多帖子,但解決方案與我的代碼看起來一樣,並且不起作用。此代碼位於片段中的方法內。奇怪的是,我有另一個片段完全相同的代碼,它的工作原理。安卓按鈕不起作用

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。事情是它不會進入聆聽者。無論如何,我會發布它,以防有人發現它有用。

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

,能不能請您發佈更多的代碼?這是一個活動與否? –

回答

0

取代

最終按鈕的AcceptButton =(按鈕) getActivity()findViewById(R.id.button_accept)。

最終按鈕的AcceptButton =(按鈕)視圖 .findViewById(R.id.button_accept);

這裏的觀點是片段佈局

+0

試過了。沒有工作。 :S –

0

儘量擡高其中包含您Button然後View,使用此View 找到你Button像ID:

final Button acceptButton = (Button)myInflatedView.findViewById(R.id.button_accept); 
+0

試過了。沒有工作。 :S –

0

我能夠解決它。我錯過了Z軸。我叫

deletePopup.bringToFront();和我解決它

感謝大家