Android: OnClickListener не отвечает на начальную загрузку?

Я столкнулся с странной проблемой, и я не уверен, что ее вызывает. В принципе, я использую класс ErrorFragment для отображения ошибки, просто?

Проблема связана с установкой прослушивателя нажатия кнопок с помощью setButtonClickListener . Когда MainFragment изначально загружен, кнопка не регистрирует никаких кликов с помощью моего Android-телевизора.

Однако, если я перезагружаю MainFragment с помощью кнопки «Назад» на пульте дистанционного управления, кнопка регистрирует клики.

Может ли кто-нибудь дать мне некоторое представление о том, почему это может произойти?

Благодаря!

MainActivity.java:

 public class MainActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } } 

activity_main.xml:

 <fragment xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/main_browse_fragment" android:name="com.ui.MainFragment" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.ui.MainActivity" tools:deviceIds="tv" tools:ignore="MergeRootFrame" /> 

MainFragment.java:

 public class MainFragment extends DetailsFragment { @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); setupUIElements(); if (isConnectingToInternet() == true) { prepareBackgroundManager(); loadRows(); setupEventListeners(); } else { InternetConnectivityFragment internetError = new InternetConnectivityFragment(); getFragmentManager().beginTransaction().add(R.id.main_browse_fragment, internetError).commit(); } } public class GetInternetStatus extends AsyncTask<Void,Void,Boolean> { @Override protected Boolean doInBackground(Void... params) { return hasInternetAccess(); } protected boolean hasInternetAccess() { try { URL url = new URL("http://www.google.com"); HttpURLConnection urlc = (HttpURLConnection) url.openConnection(); urlc.setRequestProperty("User-Agent", "Android Application:1"); urlc.setRequestProperty("Connection", "close"); urlc.setConnectTimeout(1000 * 30); urlc.connect(); // http://www.w3.org/Protocols/HTTP/HTRESP.html if (urlc.getResponseCode() == 200 || urlc.getResponseCode() > 400) { // Requested site is available return true; } } catch (Exception ex) { // Error while trying to connect ex.printStackTrace(); return false; } return false; } } // Checking for all possible internet connections public boolean isConnectingToInternet() { Boolean result = false; try { //get the result after executing AsyncTask result = new GetInternetStatus().execute().get(); } catch (InterruptedException e) { e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } return result; } .... } 

InternetConnectivityFragment.java:

 public class InternetConnectivityFragment extends android.support.v17.leanback.app.ErrorFragment { private static int TIMER_DELAY = 3000; private static final String TAG = "InternetFragment"; private static final boolean TRANSLUCENT = true; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setErrorContent(); } private void setErrorContent() { setImageDrawable(getResources().getDrawable(R.drawable.lb_ic_sad_cloud, null)); setMessage(getResources().getString(R.string.no_internet_message)); setDefaultBackground(TRANSLUCENT); setButtonText(getResources().getString(R.string.retry_connection)); setButtonClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { MainFragment mainFragment = new MainFragment(); if (mainFragment.isOnline() == true) { getFragmentManager().beginTransaction().remove(InternetConnectivityFragment.this).commit(); getFragmentManager().popBackStack(); } } }); } } 

Введите описание изображения здесь

Solutions Collecting From Web of "Android: OnClickListener не отвечает на начальную загрузку?"