关键词:
【中文标题】Android:OnClickListener 在初始加载时无响应?【英文标题】:Android: OnClickListener unresponsive on Initial Load? 【发布时间】:2016-10-24 19:56:34 【问题描述】:我遇到了一个奇怪的问题,我不确定是什么原因造成的。基本上,我使用ErrorFragment
类来显示错误,简单吧?
问题与使用setButtonClickListener
设置按钮单击侦听器有关。最初加载 MainFragment
时,该按钮不会向我的 Android TV 遥控器注册任何点击。
但是,如果我使用遥控器上的后退按钮重新加载 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_
android:layout_
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();
);
【问题讨论】:
你能把你的 loadRows 方法放进去吗?也许是这个原因。 这不是问题 尝试使用 ChildFragmentManager,而不是使用 FragmentManager。实际上,如果您想在另一个片段中添加片段,那么您必须使用子片段管理器 【参考方案1】:您有 android API 来检查网络连接。检查此Network Connectivity
不建议在方法isOnline()
中访问Process
。至少在主线程中。点击监听器中的mainFragment.isOnline()
可能是原因。尝试将其注释掉。
【讨论】:
注释掉没有效果,我还是无法用遥控器注册按钮点击...我添加了截图 尝试同样的调试。需要时间或迷路的地方。按钮 onClickListener 在 Android 中无法播放声音
】按钮onClickListener在Android中无法播放声音【英文标题】:buttononClickListenernotworkinginAndroidtoplayasound【发布时间】:2018-10-1511:10:08【问题描述】:我试图将我的按钮设置为单击时播放歌曲,但没有任何反应,没有错误,也没有强制... 查看详情
Android:OnClickListener 在初始加载时无响应?
】Android:OnClickListener在初始加载时无响应?【英文标题】:Android:OnClickListenerunresponsiveonInitialLoad?【发布时间】:2016-10-2419:56:34【问题描述】:我遇到了一个奇怪的问题,我不确定是什么原因造成的。基本上,我使用ErrorFragment类... 查看详情
在 listview Android 1.6 中同时使用 onClickListener 和 onLongClickListener
】在listviewAndroid1.6中同时使用onClickListener和onLongClickListener【英文标题】:UsebothonClickListenerandonLongClickListenerinlistviewAndroid1.6【发布时间】:2011-06-0500:29:07【问题描述】:我将onClickListener和onLongClickListener用于ListView中的TextView 查看详情
java.lang.NullPointerException:尝试在 OnClickListener 中调用虚拟方法 android
】java.lang.NullPointerException:尝试在OnClickListener中调用虚拟方法android【英文标题】:java.lang.NullPointerException:AttempttoinvokevirtualmethodandroidinOnClickListener【发布时间】:2017-04-1100:18:18【问题描述】:我是安卓新手。我试图构建一个简单... 查看详情
Android onClickListener 在复合视图中不起作用
】AndroidonClickListener在复合视图中不起作用【英文标题】:AndroidonClickListenernotworkingincompoundview【发布时间】:2016-08-0117:42:56【问题描述】:我有一个包含以下xml和代码的复合视图。<?xmlversion="1.0"encoding="utf-8"?><mergexmlns:android... 查看详情
Android:无法让 Checkbox OnClickListener 在 ListFragment 中工作
】Android:无法让CheckboxOnClickListener在ListFragment中工作【英文标题】:Android:Can\'tgetCheckboxOnClickListenertoworkinListFragment【发布时间】:2015-10-1816:51:55【问题描述】:我浏览了一些帖子,但无法获得确认点击的复选框。我想我已经完成... 查看详情
如何在 Android 应用程序中为联系我们表单设置 onClickListener
】如何在Android应用程序中为联系我们表单设置onClickListener【英文标题】:HowtosetonClickListnerforcontactusforminandroidapp【发布时间】:2016-11-1212:57:49【问题描述】:我在操作栏上为android应用程序创建了一个联系我们的表单,我已将它... 查看详情
如何在recyclerview中为cardview android设置带有int数组的onclicklistener
】如何在recyclerview中为cardviewandroid设置带有int数组的onclicklistener【英文标题】:howtosetonclicklistenerwithintarrayinrecyclerviewforcardviewandroid【发布时间】:2021-11-2821:49:40【问题描述】:我想使用ifelse语句单击Cardview项目并打算进行其他活... 查看详情
尝试在空对象引用上调用虚拟方法“void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)”
】尝试在空对象引用上调用虚拟方法“voidandroid.widget.Button.setOnClickListener(android.view.View$OnClickListener)”【英文标题】:Attempttoinvokevirtualmethod\'voidandroid.widget.Button.setOnClickListener(android.view.View$OnClickListener)\'onanu 查看详情
XML 中的 Android onClick 与 OnClickListener
】XML中的AndroidonClick与OnClickListener【英文标题】:AndroidonClickinXMLvs.OnClickListener【发布时间】:2014-02-1416:46:27【问题描述】:我知道之前有人问过类似措辞的问题,但这次不同。我在开发android应用程序方面还很陌生,关于android:onc... 查看详情
如何在 Kotlin Android 中为 RecyclerView itemView 中的特定元素实现 onClickListener? [复制]
】如何在KotlinAndroid中为RecyclerViewitemView中的特定元素实现onClickListener?[复制]【英文标题】:HowtoimplementonClickListenerforaspecificelementinsideRecyclerViewitemViewinKotlinAndroid?[duplicate]【发布时间】:2021-08-2106:15:03【问题描述】:我想在RecylerV... 查看详情
我在哪里定义我的 OnClickListener 以关闭 Android 中的自定义对话框视图?
】我在哪里定义我的OnClickListener以关闭Android中的自定义对话框视图?【英文标题】:WheredoIdefinemyOnClickListenertocloseacustomdialogviewinAndroid?【发布时间】:2011-09-3012:00:47【问题描述】:我已经定义了以下自定义对话框视图:publicclassM... 查看详情
RecyclerView OnClickListener(在整个 RV 上)
】RecyclerViewOnClickListener(在整个RV上)【英文标题】:RecyclerViewOnClickListener(OnentireRV)【发布时间】:2017-01-2021:31:58【问题描述】:我的回收站视图:<android.support.v7.widget.RecyclerViewandroid:background="?android:selectableItemBackground"ap 查看详情
Android OnItemClickListener 和 OnClickListener [重复]
】AndroidOnItemClickListener和OnClickListener[重复]【英文标题】:AndroidOnItemClickListenerandOnClickListener[duplicate]【发布时间】:2021-05-2209:48:49【问题描述】:在自定义数组适配器类中(getView方法)在一个活动类中(onCreate方法)无表情的脸... 查看详情
如何为小吃吧 android 中的操作设置 Onclicklistener?
】如何为小吃吧android中的操作设置Onclicklistener?【英文标题】:HowtosetOnclicklistenerforactionsinsnackbarandroid?【发布时间】:2016-10-1218:08:22【问题描述】:我正在尝试在小吃店中设置操作。我有以下代码:Snackbar.make(cb,lvMain.getChildCount(... 查看详情
在片段中实现 onClickListener
】在片段中实现onClickListener【英文标题】:ImplementingonClickListenerinfragments【发布时间】:2021-07-0313:06:45【问题描述】:我正在将旧版Android应用程序从使用不再受支持的ViewPager和已弃用的ActionBar更新为受支持的类。我很难在我的片... 查看详情
Android RecyclerView OnClickListener 没有反应
】AndroidRecyclerViewOnClickListener没有反应【英文标题】:AndroidRecyclerViewOnClickListenernotreacting【发布时间】:2015-09-0412:59:00【问题描述】:好的,所以我在我的项目中使用RecyclerView并且需要为每个列表项实现点击监听器并在每个项目... 查看详情
android listview gettag nullpointexception in imageview onclicklistener
】androidlistviewgettagnullpointexceptioninimageviewonclicklistener【英文标题】:【发布时间】:2015-04-0613:58:28【问题描述】:我正在使用基本适配器。我在列表视图中成功适配了我的适配器。但我有两个问题。在基本适配器的行xml中包含imag... 查看详情