2015-12-12 84 views
4

我碰到一個問題,我似乎無法理解爲什麼會發生這種情況。我的項目中使用支持v4庫(版本21.0.3)中有幾個片段。在這些片段中,我使用getContext()方法來示例Toasts。 但昨天suddently所有getContext在我的項目打破了,並且Android Studio在編譯時顯示了26個錯誤。下面是打破無法解析android.support.v4.app.Fragment(版本21.0.3)中的方法getContext()Android Studio

package com.example.project.ui.fragment; 


    import android.app.Activity; 
    import android.os.Bundle; 
    import android.support.v4.app.Fragment; 
    import android.view.LayoutInflater; 
    import android.view.View; 
    import android.view.ViewGroup; 
    import android.widget.AdapterView; 
    import android.widget.ArrayAdapter; 
    import android.widget.ListView; 
    import com.example.project.R; 
    import java.util.ArrayList; 

    public class ListSizesFragment extends Fragment { 

    private ArrayList<String> sizes; 

    private ListView listViewSizes; 
    private ArrayAdapter<String> adapter; 


    public ListSizesFragment() { 
     // Required empty public constructor 
    } 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     return inflater.inflate(R.layout.fragment_list_sizes, container, false); 
    } 

    @Override 
    public void onViewCreated(View view, Bundle savedInstanceState) { 
     super.onViewCreated(view, savedInstanceState); 

     listViewSizes = (ListView) view.findViewById(R.id.listViewBlogs); 
     sizes = new ArrayList<>(MAX_SIZES); 
     sizes.addAll(getValueSizes()) 

     adapter = new ArrayAdapter<String>(getContext(), android.R.layout.simple_list_item_1, sizes); 
     listViewSizes.setAdapter(adapter); 
     listViewSizes.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       String resultSize = adapter.getItem(position); 
       Toast.makeText(getContext(),"result :"+resultSize,Toast.LENGHT_SHORT).show();    getActivity().setResult(Activity.RESULT_OK); 
       getActivity().finish(); 
      } 
     }); 
    } 
} 

從我可以在Android文檔中看到的多exemples之一(http://developer.android.com/reference/android/support/v4/app/Fragment.html#getContext())的getContext是支持-V4片段的方法,所以我堅持在試圖找出什麼問題。

在該項目中,我也有一個ViewPager,我不能有addOnPageListener方法相同的問題。

我試過了重建項目和使用Gradle文件重新同步項目,但無濟於事。

謝謝。

回答

1

Fragment#getContext() was added in version 23 of the support library。如果您無意中將build.gradle文件翻轉爲使用舊版本(您說21.0.3),則不支持getContext()

+0

因此,我正在尋找本地歷史和build.gradle依賴關係編譯'com.android.support:support-v4:+'已更改爲編譯'com.android.support:support-v4:21.0。 3'昨天當這個問題發生。然而,試圖使用最新版本回來給我另一個錯誤:_Error:(3)錯誤檢索項的父項:找不到匹配給定名稱的資源'android:TextAppearance.Material.Widget.Button.Inverse'._ – NlsGladiatus

+0

如果我無意中翻轉了我的build.gradle文件,我該如何「解開」它們?我應該編輯哪些文件以更改支持庫版本? – calvillo

+0

@calvillo你的模塊的build.gradle,特別是'compile「com.android.support ...'那裏 – laalto

相關問題