2014-01-22 58 views
1

我在片段中工作。我想從onClickListener調用一個片段。 我該怎麼做?這是我的代碼。從其他部分我必須調用一個片段..如何做到這一點?如何從OnClickListener調用片段

chartView.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       SeriesSelection seriesSelection = chartView 
         .getCurrentSeriesAndPoint(); 

       if (seriesSelection == null) { 
        Toast.makeText(getActivity().getApplicationContext(), 
          "No chart element was clicked", 
          Toast.LENGTH_SHORT).show(); 
       } else { 
        Toast.makeText(
          getActivity().getApplicationContext(), 
          "Chart element data point index " 
            + (seriesSelection.getPointIndex() + 1) 
            + " was clicked" + " point value=" 
            + seriesSelection.getValue(), 
          Toast.LENGTH_SHORT).show(); 


       } 
      } 
     }); 
+1

對不起,我不明白你的意思是什麼「稱之爲一個片段」,你想發出一個信號,觀測到的片段或負責在運行時點擊/恢復呢? –

+1

你能澄清你的問題嗎?你想在你的Listener內用另一個片段替換一個片段嗎? – nikis

+0

在上面的代碼中,從toast消息的else部分,我想調用片段。如果是活動,我可以通過startactivity(intentobject)調用。但我不知道如何調用fragmnet? –

回答

3

有許多方法可以替代碎片。 但我按照以下方式聯繫:

像下面

public void addFragments(Fragment fragment) { 
    FragmentManager manager = getSupportFragmentManager(); 
    FragmentTransaction ft = manager.beginTransaction(); 
    ft.replace(android.R.id.tabcontent, fragment); 
    ft.commit(); 
} 

現在想重寫onAttach()創建addFragmentMethod()這個

@Override 
public void onAttach(Activity activity) { 
    this.activity = (YourActivity) activity; 
    myDetail = this.activity.myDetail; 
    super.onAttach(activity); 
    } 

現在只需撥打

activity.addFragments(fragment);