2013-09-03 2 views
0

Я новичок в android. У меня есть активность FragmentTabsActivity extends FragmentActivity, и она реализует некоторые вкладки с использованием tabhost (я знаю, что она устарела, но это просто лучше понять). Когда какая-либо вкладка активна, я хочу отобразить элемент списка в качестве контента.Некоторые методы не могут быть решены - android

Этот список определяется некоторым классом TabFragment extends ListFragment. Теперь у меня есть

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 

     mProgressbar = (ProgressBar) findViewById(R.id.progressBar); 
.... 
} 
.... 
private boolean isNetworkAvailable(){ 
    ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 

Проблема в том, что ни findViewById, ни getSystemService признаются. Почему это так ?

+1

Я думаю, что вам нужно 'mProgressbar = (ProgressBar) getView(). findViewById (R.id.progressBar); ' – codeMagic

+0

@codeMagic, вы против! почему теперь 'getSystemService' не распознается? – user1611830

+0

Попробуйте 'getActivity(). GetSystemService()' – codeMagic

ответ

1

Преобразование комментарии ответить

findViewById является методом Activity, который надувается таким образом, есть несколько способов вы можете сделать это здесь, но самое простое было бы изменить

mProgressbar = (ProgressBar) findViewById(R.id.progressBar) 

до

mProgressbar = (ProgressBar) getView().findViewById(R.id.progressBar) 

, вызвав метод на текущий раздутый view от Activity.

Для getSystemService() вам необходимо использовать ссылку на Activity что fragment прикрепляется к использовать этот метод так изменить

getSystemService(Context.CONNECTIVITY_SERVICE); 

в

getActivity().getSystemService(Context.CONNECTIVITY_SERVICE); 
1

1.Вы должны сначала раздуть представление из макета, затем найти панель прогресса в этом виде.

public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // inflate the view for your fragment 
     View view=inflater.inflate(R.layout.yourlayoutname,container,false) 
     // find the progressbar in your inflated view. 
     mProgressbar = (ProgressBar) view.findViewById(R.id.progressBar); 
.... 
     return view; 
} 

2.Use getActivity().

private boolean isNetworkAvailable(){ 
    ConnectivityManager manager = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE); 
Смежные вопросы