2014-12-09 2 views
-1

Когда я пытаюсь создать подпись APK Wizard в Android Studio 1.0, у меня есть ошибка.Ошибка Android Studio: этот класс должен предоставить конструктор по умолчанию

Error: This class should provide a default constructor (a public constructor with no arguments) (com.ex.Tab1_2_1) [Instantiatable] 

Есть мой код.

Он работает в Eclipse, и мне интересно, почему он не работает в Android Studio.

public class Tab1_2_1 extends Fragment{ 

Context mContext; 
WebView mWebView; 
View mView; 

public Tab1_2_1(Context context) 
{ 
    mContext = context; 
} 

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setRetainInstance(true); 
} 

@Override 
public View onCreateView(LayoutInflater inflater, 
     ViewGroup container, Bundle savedInstanceState) 
{ 
    mView = inflater.inflate(R.layout.webview, null); 

    return mView; 
} 

@Override 
public void onActivityCreated(Bundle savedInstanceState) 
{ 
    super.onActivityCreated(savedInstanceState); 

    mWebView = (WebView)mView.findViewById(R.id.webview); 
    mWebView.loadUrl("file:///android_asset/tab1_2/tab1_2_1.html"); 
    mWebView.getSettings().setJavaScriptEnabled(true); 
} 
} 

Удачного дня.

+0

решения работы для меня [это проверить] (http://stackoverflow.com/questions/17420637/error-non-default-constructors-in-fragments/39608360#39608360) –

ответ

0

Да, Fragment Подкласс должен иметь пустой конструктор. Вы должны удалить

public Tab1_2_1(Context context) 
{ 
    mContext = context; 
} 

также, имея конструктор просто, чтобы обеспечить объект контекста не является полезным на всех, так как Fragment имеет getActivity метод, который возвращает на активность хозяев ваш Fragment

+0

Спасибо за ваш ответ! – user3679561

1

Из официального док Fragment

All subclasses of Fragment must include a public no-argument constructor. The framework will often re-instantiate a fragment class when needed, in particular during state restore, and needs to be able to find this constructor to instantiate it. If the no-argument constructor is not available, a runtime exception will occur in some cases during state restore.

Вам не нужно передавать в него контекст. Вы всегда можете получить контекст использование getActivity() метода

+0

Спасибо за ваш ответ! – user3679561