2014-09-21 17 views
2

我有通過活動的上下文中在該方法中通上下文 - 該方法是未定義

 private void registerClicksOnParents(ListView listView, final Dialog d, final 
     ImageButton btn, final ChildAndActivityDataClass currentChild) { 
     listView.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View view,int position, long id) { 

       d.dismiss(); 
       btn.setImageResource(R.drawable.odebrany); 
       btn.setEnabled(false);   
       currentChild.setOdbiorDzieckaIdOfState(App_class.odebrane); 
       SingleInfoToServer singleInfoToServer = SingleInfoToServer(currentChild.getIdOfChild(), 
                      currentChild.getOdbiorDzieckaIdOfActivity(), 
                      currentChild.getOdbiorDzieckaIdOfState(), 
                      context); 
      }    
     }); 


    } 

當我在onItemClick調用此方法的一個問題我不能使用getActivity,我嘗試使用MainScreen.this,但沒有任何效果。我試圖讓上下文片段onCreate方法是這樣的:

public class Aktywnosci_Fragment extends Fragment { 

Context context ; 

@Override 
public void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    context = getActivity(); 

} 

,但它劇照顯示了同樣的The method SingleInfoToServer(int, int, int, Context) is undefined for the type new AdapterView.OnItemClickListener(){}

這種方法構造看起來像這樣

public SingleInfoToServer(int idOfChild, int idOfActivity, int idOfState, Context context) 
{ 
    this.context = context;  
    this.idOfChild = idOfChild; 
    this.idOfActivity = idOfActivity; 
    this.idOfState = idOfState; 
} 

所以一切都應該工作

編輯如你在評論中所說我試過用這個

私人無效registerClicksOnParents(ListView中的ListView,最終對話框d,最終的ImageButton BTN,最終ChildAndActivityDataClass currentChild,最終活動活性){ listView.setOnItemClickListener(新OnItemClickListener(){

  @Override 
      public void onItemClick(AdapterView<?> parent, View view,int position, long id) { 

       d.dismiss(); 
       btn.setImageResource(R.drawable.odebrany); 
       btn.setEnabled(false);   
       currentChild.setOdbiorDzieckaIdOfState(App_class.odebrane); 
       SingleInfoToServer singleInfoToServer = SingleInfoToServer(currentChild.getIdOfChild(), 
                      currentChild.getOdbiorDzieckaIdOfActivity(), 
                      currentChild.getOdbiorDzieckaIdOfState(), 
                      view.getContext()); 

      }  

    }  ); 
     } 

並沒有什麼變化

+0

使用'view.getContext()' – 2014-09-21 11:48:48

回答

2

當我調用這個方法onItemClick我不能使用getActivity,我 嘗試,MainScreen.this但沒有任何工程

不是存儲上下文引用的,你可以得到它使用view.getContext()onItemClick

要創建SingleInfoToServer對象也使用new關鍵字爲:

SingleInfoToServer singleInfoToServer = new SingleInfoToServer(
               currentChild.getIdOfChild(), 
            currentChild.getOdbiorDzieckaIdOfActivity(), 
        currentChild.getOdbiorDzieckaIdOfState(), view.getContext()); 
+0

對我來說這沒有什麼變化:SingleInfoToServer singleInfoToServer = SingleInfoToServer(currentChild.getIdOfChild(), \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t currentChild.getOdbiorDzieckaIdOfActivity(), \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t currentChild。getOdbiorDzieckaIdOfState(), \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t \t view.getContext());和這個相同的錯誤仍然 – MyWay 2014-09-21 12:01:13

+0

@MyWay:做它'SingleInfoToServer singleInfoToServer = new SingleInfoToServer(currentChild.getIdOfChild(),currentChild.getOdbiorDzieckaIdOfActivity(),currentChild.getOdbiorDzieckaIdOfState(),view.getContext());' – 2014-09-21 12:02:55

+0

@MyWay:我的編輯答案 – 2014-09-21 12:05:24

0

你必須捕獲一個Activity對象的getActivity()響應。然後從活動中可以獲得該上下文。

相關問題