最近很多小伙伴都在问添加Maven存储库会导致错误-无法实例化android.support.v7.widget.AppcompatTextView这两个问题,那么本篇文章就来给大家详细解答一下,同时
最近很多小伙伴都在问添加Maven存储库会导致错误-无法实例化android.support.v7.widget.AppcompatTextView这两个问题,那么本篇文章就来给大家详细解答一下,同时本文还将给你拓展android.support.v17.leanback.widget.TitleView导致错误、android.support.v4.widget.SearchViewCompat.OnQueryTextListenerCompat的实例源码、android.support.v4.widget.SearchViewCompat的实例源码、android.support.v4.widget.TextViewCompat的实例源码等相关知识,下面开始了哦!
本文目录一览:- 添加Maven存储库会导致错误-无法实例化android.support.v7.widget.AppcompatTextView
- android.support.v17.leanback.widget.TitleView导致错误
- android.support.v4.widget.SearchViewCompat.OnQueryTextListenerCompat的实例源码
- android.support.v4.widget.SearchViewCompat的实例源码
- android.support.v4.widget.TextViewCompat的实例源码
添加Maven存储库会导致错误-无法实例化android.support.v7.widget.AppcompatTextView
注意:我已经阅读了所有相关文章,并完全按照所写的内容工作,但没有任何效果.我试图为百分比尺寸添加ConstraintLayout 1.1.0-beta1,但是每当执行此操作时,底部都会弹出一个窗口低于.
我多次单击“安装存储库和同步项目”,但没有任何反应.因此,我尝试在Build.gradle(Project)中添加以下代码,它工作正常,但出现了新错误.
repositories {
maven {
url 'https://maven.google.com'
}
}
新的错误与AppCompatTextView有关
无法实例化以下类:-android.support.v7.widget.AppCompatTextView
java.lang.NullPointerException
at android.content.res.Resources_Delegate.getValue(Resources_Delegate.java:788)
at android.content.res.Resources.getValue(Resources.java:1286)
at android.support.v4.content.res.ResourcesCompat.loadFont(ResourcesCompat.java:212)
at android.support.v4.content.res.ResourcesCompat.getFont(ResourcesCompat.java:206)
at android.support.v7.widget.TintTypedArray.getFont(TintTypedArray.java:119)
at android.support.v7.widget.AppCompatTextHelper.updateTypefaceAndStyle(AppCompatTextHelper.java:208)
at android.support.v7.widget.AppCompatTextHelper.loadFromAttributes(AppCompatTextHelper.java:152)
at android.support.v7.widget.AppCompatTextHelperV17.loadFromAttributes(AppCompatTextHelperV17.java:38)
at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:81)
at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:71)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.jetbrains.android.uipreview.ViewLoader.createNewInstance(ViewLoader.java:475)
at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:250)
at org.jetbrains.android.uipreview.ViewLoader.loadClass(ViewLoader.java:213)
at com.android.tools.idea.rendering.LayoutlibCallbackImpl.loadClass(LayoutlibCallbackImpl.java:193)
at android.view.BridgeInflater.loadCustomView(BridgeInflater.java:333)
at android.view.BridgeInflater.onCreateView(BridgeInflater.java:152)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:717)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:785)
at android.view.BridgeInflater.createViewFromTag(BridgeInflater.java:222)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:858)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:834)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at com.android.layoutlib.bridge.bars.CustomBar.<init>(CustomBar.java:95)
at com.android.layoutlib.bridge.bars.StatusBar.<init>(StatusBar.java:67)
at com.android.layoutlib.bridge.impl.Layout.createStatusBar(Layout.java:224)
at com.android.layoutlib.bridge.impl.Layout.<init>(Layout.java:146)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:301)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:429)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:368)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:567)
at com.android.tools.idea.rendering.RenderTask$2.compute(RenderTask.java:549)
at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:863)
at com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:549)
at com.android.tools.idea.rendering.RenderTask.lambda$inflate$1(RenderTask.java:680)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
可以通过将ConstraintLayout 1.1.0-beta1替换为ConstraintLayout 1.0.1来删除上面所说的内容,并且该应用程序可以正常运行.这是build.gradle(应用程序).
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsversion "26.0.0"
defaultConfig {
applicationId "cant.reveal.the.secret"
minSdkVersion 17
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile filetree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.+'
compile 'com.android.support:design:26.0.0-alpha1'
compile 'com.android.support.constraint:constraint-layout:1.1.0-beta1'
compile 'com.google.firebase:firebase-ads:11.0.4'
compile 'com.google.android.gms:play-services-maps:11.0.4'
compile 'com.google.android.gms:play-services-location:11.0.4'
compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:+'
compile 'com.android.support:support-v4:26.+'
testCompile 'junit:junit:4.12'
}
因此,最后,是否有任何解决方案/修复程序,所以我可以使用具有百分比尺寸的ConstraintLayout 1.1.0-beta1,而不会出现此错误.
另外,将这些26.版本更改为26.0.0或26.0.1也会显示相同的错误.编辑-我发现,每当我按照Android支持页面中的说明在项目gradle中添加Maven repo时,就会出现此渲染错误.另外,我在SDK Mangager中看不到要添加的所有这些版本->意味着添加这些工具不会影响存储库的版本,也不会安装.
在哪里可以找到这些库的.jar / .aar文件?
仍然需要帮助,任何帮助将不胜感激.谢谢.
解决方法:
请参阅我的答案here.与AppCompatTextView相关的NullPointerException可以通过将res / values / styles.xml中的父主题更改为Base来解决.
< style name =“ AppTheme” parent =“ Base.Theme.AppCompat.Light.DarkActionBar”>
我刚刚尝试过,可以使用ConstraintLayout beta属性而不会出现错误.
android.support.v17.leanback.widget.TitleView导致错误
android.view.InflateException: Binary XML file line #17: Error inflating class android.support.v17.leanback.widget.TitleView at android.view.LayoutInflater.createView(LayoutInflater.java:620) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696) at android.view.LayoutInflater.parseInclude(LayoutInflater.java:816) at android.view.LayoutInflater.rInflate(LayoutInflater.java:745) at android.view.LayoutInflater.rInflate(LayoutInflater.java:758) at android.view.LayoutInflater.inflate(LayoutInflater.java:492) at android.view.LayoutInflater.inflate(LayoutInflater.java:397) at android.support.v17.leanback.app.browseFragment.onCreateView(browseFragment.java:674) at android.app.Fragment.performCreateView(Fragment.java:1700) at android.app.FragmentManagerImpl.movetoState(FragmentManager.java:866) at android.app.FragmentManagerImpl.movetoState(FragmentManager.java:1040) at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1142) at android.app.Activity.onCreateView(Activity.java:4828) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689) at android.view.LayoutInflater.rInflate(LayoutInflater.java:755) at android.view.LayoutInflater.inflate(LayoutInflater.java:492) at android.view.LayoutInflater.inflate(LayoutInflater.java:397) at com.engel.engeldroid.fragments.HomeFragment.onCreateView(HomeFragment.java:28) at android.app.Fragment.performCreateView(Fragment.java:1700) at android.app.FragmentManagerImpl.movetoState(FragmentManager.java:890) at android.app.FragmentManagerImpl.movetoState(FragmentManager.java:1062) at android.app.BackStackRecord.run(BackStackRecord.java:684) at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1447) at android.app.FragmentManagerImpl$1.run(FragmentManager.java:443) at android.os.Handler.handleCallback(Handler.java:733) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5017) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:603) at dalvik.system.NativeStart.main(Native Method)
我的xml:
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <fragment android:id="@+id/browse_fragment" android:name="android.support.v17.leanback.app.browseFragment" android:layout_width="match_parent" android:layout_height="match_parent" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Button" android:id="@+id/button" android:layout_centerVertical="true" android:layout_centerHorizontal="true" />
解决方法
检查您的活动是否直接在AndroidManifest中使用Theme.Leanback主题
<activity android:name=".YourActivity" android:theme="@style/Theme.Leanback" />
或者您的AppTheme派生自Theme.Leanback
<style name="AppTheme" parent="Theme.Leanback" > // your custom attributes </style>
android.support.v4.widget.SearchViewCompat.OnQueryTextListenerCompat的实例源码
@Override public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) { // Place an action bar item for searching. MenuItem item = menu.add("Search"); item.setIcon(android.R.drawable.ic_menu_search); item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); SherlockFragmentActivity activity = (SherlockFragmentActivity)getActivity(); View searchView = SearchViewCompat.newSearchView(activity.getSupportActionBar().getThemedContext()); if (searchView != null) { SearchViewCompat.setonQueryTextListener(searchView,new OnQueryTextListenerCompat() { @Override public boolean onQueryTextChange(String newText) { // Called when the action bar search text has changed. Update // the search filter,and restart the loader to do a new query // with this filter. mCurFilter = !TextUtils.isEmpty(newText) ? newText : null; getLoaderManager().restartLoader(0,null,CursorLoaderListFragment.this); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) { // Place an action bar item for searching. MenuItem item = menu.add("Search"); item.setIcon(android.R.drawable.ic_menu_search); item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); View searchView = SearchViewCompat.newSearchView(getActivity()); if (searchView != null) { SearchViewCompat.setonQueryTextListener(searchView,new OnQueryTextListenerCompat() { @Override public boolean onQueryTextChange(String newText) { // Called when the action bar search text has changed. Since this // is a simple array adapter,we can just have it do the filtering. mCurFilter = !TextUtils.isEmpty(newText) ? newText : null; mAdapter.getFilter().filter(mCurFilter); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,CursorLoaderListFragment.this); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,we can just have it do the filtering. mCurFilter = !TextUtils.isEmpty(newText) ? newText : null; mAdapter.getFilter().filter(mCurFilter); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,CursorLoaderListFragment.this); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,we can just have it do the filtering. mCurFilter = !TextUtils.isEmpty(newText) ? newText : null; mAdapter.getFilter().filter(mCurFilter); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) { // Place an action bar item for searching. MenuItem item = menu.add("Search"); item.setIcon(android.R.drawable.ic_menu_search); item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); View searchView = SearchViewCompat.newSearchView(getActivity()); if (searchView != null) { SearchViewCompat.setonQueryTextListener(searchView,CursorLoaderListFragment.this); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,we can just have it do the filtering. mCurFilter = !TextUtils.isEmpty(newText) ? newText : null; mAdapter.getFilter().filter(mCurFilter); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,CursorLoaderListFragment.this); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,we can just have it do the filtering. mCurFilter = !TextUtils.isEmpty(newText) ? newText : null; mAdapter.getFilter().filter(mCurFilter); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,CursorLoaderListFragment.this); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,we can just have it do the filtering. mCurFilter = !TextUtils.isEmpty(newText) ? newText : null; mAdapter.getFilter().filter(mCurFilter); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,CursorLoaderListFragment.this); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,we can just have it do the filtering. mCurFilter = !TextUtils.isEmpty(newText) ? newText : null; mAdapter.getFilter().filter(mCurFilter); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,CursorLoaderListFragment.this); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,we can just have it do the filtering. mCurFilter = !TextUtils.isEmpty(newText) ? newText : null; mAdapter.getFilter().filter(mCurFilter); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) { // Place an action bar item for searching. MenuItem item = menu.add("Search"); item.setIcon(android.R.drawable.ic_menu_search); MenuItemCompat.setShowAsAction(item,MenuItemCompat.SHOW_AS_ACTION_ALWAYS | MenuItemCompat.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW); View searchView = SearchViewCompat.newSearchView(getActivity()); if (searchView != null) { SearchViewCompat.setonQueryTextListener(searchView,and restart the loader to do a new query // with this filter. String newFilter = !TextUtils.isEmpty(newText) ? newText : null; // Don't do anything if the filter hasn't actually changed. // Prevents restarting the loader when restoring state. if (mCurFilter == null && newFilter == null) { return true; } if (mCurFilter != null && mCurFilter.equals(newFilter)) { return true; } mCurFilter = newFilter; getLoaderManager().restartLoader(0,CursorLoaderListFragment.this); return true; } }); MenuItemCompat.setActionView(item,searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,MenuItemCompat.SHOW_AS_ACTION_IF_ROOM | MenuItemCompat.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW); final View searchView = SearchViewCompat.newSearchView(getActivity()); if (searchView != null) { SearchViewCompat.setonQueryTextListener(searchView,we can just have it do the filtering. mCurFilter = !TextUtils.isEmpty(newText) ? newText : null; mAdapter.getFilter().filter(mCurFilter); return true; } }); SearchViewCompat.setonCloseListener(searchView,new OnCloseListenerCompat() { @Override public boolean onClose() { if (!TextUtils.isEmpty(SearchViewCompat.getQuery(searchView))) { SearchViewCompat.setQuery(searchView,true); } return true; } }); MenuItemCompat.setActionView(item,searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) { // 客户列表菜单 inflater.inflate(R.menu.transnode_list,menu); // 获取“搜索按钮”菜单控件 MenuItem item = menu.findItem(R.id.action_search); final SearchView searchView = (SearchView) item.getActionView(); if (searchView != null) { SearchViewCompat.setonQueryTextListener(searchView,new OnQueryTextListenerCompat() { @Override public boolean onQueryTextChange(String newText) { return true; } // 当搜索结果提交时执行 @Override public boolean onQueryTextSubmit(String query) { if (!TextUtils.isEmpty(query)) { RefreshList(query); SearchViewCompat.setQuery(searchView,true); } return true; } }); SearchViewCompat.setonCloseListener(searchView,new OnCloseListenerCompat() { @Override public boolean onClose() { if (!TextUtils.isEmpty(SearchViewCompat .getQuery(searchView))) { SearchViewCompat.setQuery(searchView,true); } return true; } }); MenuItemCompat.setActionView(item,searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) { // 客户列表菜单 inflater.inflate(R.menu.customer_list,searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) { // Todo Auto-generated method stub MenuItem search = menu.findItem(R.id.action_search); final SearchView searchView = (SearchView) search.getActionView(); searchView.setQueryHint("网点名称,区域码..."); if (searchView != null) { SearchViewCompat.setonQueryTextListener(searchView,new OnQueryTextListenerCompat() { @Override public boolean onQueryTextChange(String newText) { return true; } // 当搜索结果提交时执行 @Override public boolean onQueryTextSubmit(String query) { if (!TextUtils.isEmpty(query)) { loadNodesLatlng(query); SearchViewCompat.setQuery(searchView,true); } return true; } }); MenuItemCompat.setActionView(search,searchView); } super.onCreateOptionsMenu(menu,inflater); }
@Override public void onCreateOptionsMenu(Menu menu,MenuItemCompat.SHOW_AS_ACTION_ALWAYS | MenuItemCompat.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW); final View searchView = SearchViewCompat.newSearchView(getActivity()); if (searchView != null) { SearchViewCompat.setonQueryTextListener(searchView,CursorLoaderListFragment.this); return true; } }); SearchViewCompat.setonCloseListener(searchView,searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,searchView); } }
android.support.v4.widget.SearchViewCompat的实例源码
@Override public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) { // Place an action bar item for searching. MenuItem item = menu.add("Search"); item.setIcon(android.R.drawable.ic_menu_search); item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); SherlockFragmentActivity activity = (SherlockFragmentActivity)getActivity(); View searchView = SearchViewCompat.newSearchView(activity.getSupportActionBar().getThemedContext()); if (searchView != null) { SearchViewCompat.setonQueryTextListener(searchView,new OnQueryTextListenerCompat() { @Override public boolean onQueryTextChange(String newText) { // Called when the action bar search text has changed. Update // the search filter,and restart the loader to do a new query // with this filter. mCurFilter = !TextUtils.isEmpty(newText) ? newText : null; getLoaderManager().restartLoader(0,null,CursorLoaderListFragment.this); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) { // Place an action bar item for searching. MenuItem item = menu.add("Search"); item.setIcon(android.R.drawable.ic_menu_search); item.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); View searchView = SearchViewCompat.newSearchView(getActivity()); if (searchView != null) { SearchViewCompat.setonQueryTextListener(searchView,new OnQueryTextListenerCompat() { @Override public boolean onQueryTextChange(String newText) { // Called when the action bar search text has changed. Since this // is a simple array adapter,we can just have it do the filtering. mCurFilter = !TextUtils.isEmpty(newText) ? newText : null; mAdapter.getFilter().filter(mCurFilter); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,CursorLoaderListFragment.this); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,we can just have it do the filtering. mCurFilter = !TextUtils.isEmpty(newText) ? newText : null; mAdapter.getFilter().filter(mCurFilter); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,CursorLoaderListFragment.this); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,we can just have it do the filtering. mCurFilter = !TextUtils.isEmpty(newText) ? newText : null; mAdapter.getFilter().filter(mCurFilter); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) { // Place an action bar item for searching. MenuItem item = menu.add("Search"); item.setIcon(android.R.drawable.ic_menu_search); item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); View searchView = SearchViewCompat.newSearchView(getActivity()); if (searchView != null) { SearchViewCompat.setonQueryTextListener(searchView,CursorLoaderListFragment.this); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,we can just have it do the filtering. mCurFilter = !TextUtils.isEmpty(newText) ? newText : null; mAdapter.getFilter().filter(mCurFilter); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,CursorLoaderListFragment.this); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,we can just have it do the filtering. mCurFilter = !TextUtils.isEmpty(newText) ? newText : null; mAdapter.getFilter().filter(mCurFilter); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,CursorLoaderListFragment.this); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,we can just have it do the filtering. mCurFilter = !TextUtils.isEmpty(newText) ? newText : null; mAdapter.getFilter().filter(mCurFilter); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,CursorLoaderListFragment.this); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,we can just have it do the filtering. mCurFilter = !TextUtils.isEmpty(newText) ? newText : null; mAdapter.getFilter().filter(mCurFilter); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,CursorLoaderListFragment.this); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,we can just have it do the filtering. mCurFilter = !TextUtils.isEmpty(newText) ? newText : null; mAdapter.getFilter().filter(mCurFilter); return true; } }); item.setActionView(searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) { // Place an action bar item for searching. MenuItem item = menu.add("Search"); item.setIcon(android.R.drawable.ic_menu_search); MenuItemCompat.setShowAsAction(item,MenuItemCompat.SHOW_AS_ACTION_ALWAYS | MenuItemCompat.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW); View searchView = SearchViewCompat.newSearchView(getActivity()); if (searchView != null) { SearchViewCompat.setonQueryTextListener(searchView,and restart the loader to do a new query // with this filter. String newFilter = !TextUtils.isEmpty(newText) ? newText : null; // Don't do anything if the filter hasn't actually changed. // Prevents restarting the loader when restoring state. if (mCurFilter == null && newFilter == null) { return true; } if (mCurFilter != null && mCurFilter.equals(newFilter)) { return true; } mCurFilter = newFilter; getLoaderManager().restartLoader(0,CursorLoaderListFragment.this); return true; } }); MenuItemCompat.setActionView(item,searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,MenuItemCompat.SHOW_AS_ACTION_IF_ROOM | MenuItemCompat.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW); final View searchView = SearchViewCompat.newSearchView(getActivity()); if (searchView != null) { SearchViewCompat.setonQueryTextListener(searchView,we can just have it do the filtering. mCurFilter = !TextUtils.isEmpty(newText) ? newText : null; mAdapter.getFilter().filter(mCurFilter); return true; } }); SearchViewCompat.setonCloseListener(searchView,new OnCloseListenerCompat() { @Override public boolean onClose() { if (!TextUtils.isEmpty(SearchViewCompat.getQuery(searchView))) { SearchViewCompat.setQuery(searchView,true); } return true; } }); MenuItemCompat.setActionView(item,searchView); } }
@Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.actions,menu); View searchView = MenuItemCompat.getActionView(menu.findItem(R.id.action_search)); SearchViewCompat.setonQueryTextListener(searchView,mOnQueryTextListener); return true; }
@Override public void onCreateOptionsMenu(Menu menu,searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,searchView); } }
@Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getSupportMenuInflater(); inflater.inflate(R.menu.contact_list_menu,menu); mSearchView = SearchViewCompat.newSearchView(this); if (mSearchView != null) { MenuItem item = menu.add("Search") .setIcon(android.R.drawable.ic_menu_search) .setActionView(mSearchView); item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW); SearchViewCompat.setonQueryTextListener(mSearchView,new SearchViewCompat.OnQueryTextListenerCompat() { @Override public boolean onQueryTextChange(String newText) { mFilterView.doFilter(newText); return true; } @Override public boolean onQueryTextSubmit(String query) { mFilterView.doFilter(query); return true; } }); } return true; }
@Override public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) { // 客户列表菜单 inflater.inflate(R.menu.transnode_list,menu); // 获取“搜索按钮”菜单控件 MenuItem item = menu.findItem(R.id.action_search); final SearchView searchView = (SearchView) item.getActionView(); if (searchView != null) { SearchViewCompat.setonQueryTextListener(searchView,new OnQueryTextListenerCompat() { @Override public boolean onQueryTextChange(String newText) { return true; } // 当搜索结果提交时执行 @Override public boolean onQueryTextSubmit(String query) { if (!TextUtils.isEmpty(query)) { RefreshList(query); SearchViewCompat.setQuery(searchView,true); } return true; } }); SearchViewCompat.setonCloseListener(searchView,new OnCloseListenerCompat() { @Override public boolean onClose() { if (!TextUtils.isEmpty(SearchViewCompat .getQuery(searchView))) { SearchViewCompat.setQuery(searchView,true); } return true; } }); MenuItemCompat.setActionView(item,searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) { // 客户列表菜单 inflater.inflate(R.menu.customer_list,searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) { // Todo Auto-generated method stub MenuItem search = menu.findItem(R.id.action_search); final SearchView searchView = (SearchView) search.getActionView(); searchView.setQueryHint("网点名称,区域码..."); if (searchView != null) { SearchViewCompat.setonQueryTextListener(searchView,new OnQueryTextListenerCompat() { @Override public boolean onQueryTextChange(String newText) { return true; } // 当搜索结果提交时执行 @Override public boolean onQueryTextSubmit(String query) { if (!TextUtils.isEmpty(query)) { loadNodesLatlng(query); SearchViewCompat.setQuery(searchView,true); } return true; } }); MenuItemCompat.setActionView(search,searchView); } super.onCreateOptionsMenu(menu,inflater); }
@Override public void onCreateOptionsMenu(Menu menu,MenuItemCompat.SHOW_AS_ACTION_ALWAYS | MenuItemCompat.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW); final View searchView = SearchViewCompat.newSearchView(getActivity()); if (searchView != null) { SearchViewCompat.setonQueryTextListener(searchView,CursorLoaderListFragment.this); return true; } }); SearchViewCompat.setonCloseListener(searchView,searchView); } }
@Override public void onCreateOptionsMenu(Menu menu,searchView); } }
android.support.v4.widget.TextViewCompat的实例源码
private void addLinkItemView(ViewGroup parent,int resIdText,int resIdDrawable,final String url,String formatArg) { TextView view = (TextView) LayoutInflater.from(parent.getContext()).inflate(R.layout.app_details2_link_item,parent,false); if (formatArg == null) { view.setText(resIdText); } else { String text = parent.getContext().getString(resIdText,formatArg); view.setText(text); } TextViewCompat.setCompoundDrawablesRelativeWithIntrinsicBounds(view,resIdDrawable,0); parent.addView(view); view.setonClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onLinkClicked(url); } }); }
private void initValueView() { mValueTextView = (TextView) findViewById(R.id.text_value); if (mValueTextAppearanceResId != INVALID_RES) { TextViewCompat.setTextAppearance(mValueTextView,mValueTextAppearanceResId); } if (mValueTextColor != 0) { mValueTextView.setTextColor(mValueTextColor); } if (mValueTextSize != INVALID_RES) { mValueTextView.setTextSize(TypedValue.COMPLEX_UNIT_PX,mValueTextSize); } LinearLayout.LayoutParams layoutParams = (LayoutParams) mValueTextView.getLayoutParams(); if (mOrientation == HORIZONTAL) { layoutParams.setMargins(mValueMarginStart,mValueMarginEnd,0); } else { layoutParams.setMargins(0,mValueMarginStart,mValueMarginEnd); } mValueTextView.setLayoutParams(layoutParams); setValue(); }
void updateCounter(int length) { boolean wasCounterOverflowed = mCounterOverflowed; if (mCounterMaxLength == INVALID_MAX_LENGTH) { mCounterView.setText(String.valueOf(length)); mCounterOverflowed = false; } else { mCounterOverflowed = length > mCounterMaxLength; if (wasCounterOverflowed != mCounterOverflowed) { TextViewCompat.setTextAppearance(mCounterView,mCounterOverflowed ? mCounterOverflowTextAppearance : mCounterTextAppearance); } mCounterView.setText(getContext().getString(R.string.character_counter_pattern,length,mCounterMaxLength)); } if (mEditText != null && wasCounterOverflowed != mCounterOverflowed) { updateLabelState(false); updateEditTextBackground(); } }
public RecyclerViewScrollbar(Context context,@Nullable AttributeSet attrs,int defStyleAttr) { super(context,attrs,defStyleAttr); TypedArray ta = context.getTheme().obtainStyledAttributes(attrs,R.styleable.RecyclerViewScrollbar,defStyleAttr,0); mRecyclerViewId = ta.getResourceId(R.styleable.RecyclerViewScrollbar_recyclerView,0); mScrollbarDrawable = ta.getDrawable(R.styleable.RecyclerViewScrollbar_scrollbarDrawable); mLetterDrawable = ta.getDrawable(R.styleable.RecyclerViewScrollbar_letterDrawable); int letterTextResId = ta.getResourceId(R.styleable.RecyclerViewScrollbar_letterTextAppearance,0); mMinScrollbarHeight = ta.getDimensionPixelOffset(R.styleable.RecyclerViewScrollbar_minScrollbarHeight,0); ta.recycle(); mLetterView = new TextView(getContext()); mLetterView.setBackgroundDrawable(mLetterDrawable); TextViewCompat.setTextAppearance(mLetterView,letterTextResId); FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT); params.gravity = GravityCompat.END; mLetterView.setLayoutParams(params); mLetterView.setGravity(Gravity.CENTER); }
@Override public void onClickCard(View v,Update update) { // if card is clicked and the line count is bigger than 3 (meaning it can be expanded/"dexpanded") TextView tvText = v.findViewById(R.id.tv_updatecard_text); View viewExpand = v.findViewById(R.id.view_updatecard_expand); if (tvText.getLineCount() > 3) { // if current max lines is 3,expand to 100 lines,and else "dexpand" back to 3 // it uses TextViewCompat instead of the given method for API 15 compatibility if (TextViewCompat.getMaxLines(tvText) == 3) { tvText.setMaxLines(100); viewExpand.setBackgroundResource(R.drawable.ic_arrow_drop_up_grey_600_24dp); } else { tvText.setMaxLines(3); viewExpand.setBackgroundResource(R.drawable.ic_arrow_drop_down_grey_600_24dp); } } }
/** * 设置日期天数字体样式 * * @param isSelected */ public void setDateTextAppearance(boolean isSelected) { if (isSelected) { if (itemStyle != null && itemStyle.getDateTextCheckedAppearance() > 0) { TextViewCompat.setTextAppearance(dayText,itemStyle.getDateTextCheckedAppearance()); } else { TextViewCompat.setTextAppearance(dayText,R.style.SelectedDayViewStyle); } } else { if (itemStyle != null && itemStyle.getDateTextAppearance() > 0) { TextViewCompat.setTextAppearance(dayText,itemStyle.getDateTextAppearance()); } else { TextViewCompat.setTextAppearance(dayText,R.style.DefaultDayViewStyle); } } }
private static void show(final CharSequence text,final int duration) { HANDLER.post(new Runnable() { @Override public void run() { cancel(); sToast = Toast.makeText(Utils.getApp(),text,duration); // solve the font of toast TextView tvMessage = sToast.getView().findViewById(android.R.id.message); TextViewCompat.setTextAppearance(tvMessage,android.R.style.TextAppearance); tvMessage.setTextColor(msgColor); sToast.setGravity(gravity,xOffset,yOffset); setBg(tvMessage); sToast.show(); } }); }
@SuppressLint("PrivateResource") private void createDummyTextView(Context context) { final TintTypedArray a = TintTypedArray.obtainStyledAttributes(getContext(),null,R.styleable.Toolbar,R.attr.toolbarStyle,0); int titleTextAppearance = a.getResourceId(R.styleable.Toolbar_titleTextAppearance,0); a.recycle(); dummy = new TextView(context); dummy.setSingleLine(); dummy.setEllipsize(TextUtils.TruncateAt.END); TextViewCompat.setTextAppearance(dummy,titleTextAppearance); collapsedTextSize = dummy.getTextSize(); expendedTextSize = collapsedTextSize * TEXT_SCALE_FACTOR; dummy.setTextSize(ViewUtils.convertPixelToSp(expendedTextSize)); dummy.setVisibility(INVISIBLE); addView(dummy,new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT)); }
private void switchMode(boolean isLive) { if (mIsLive == isLive) { return; } mIsLive = isLive; if (isLive) { setContentSeekBarVisibility(GONE); setSummaryViewerVisibility(INVISIBLE); TextView live = (TextView) View.inflate(mThemeContext,R.layout.live_view,null); Drawable drawable = VectorDrawableCompat.create(getResources(),R.drawable.ic_live_player,null); TextViewCompat.setCompoundDrawablesRelativeWithIntrinsicBounds(live,drawable,null); setCustomViewToColumn(live,CUSTOM_COLUMN_BottOM_LEFT); } else { setContentSeekBarVisibility(VISIBLE); setSummaryViewerVisibility(VISIBLE); removeViewFromCustomColumn(CUSTOM_COLUMN_BottOM_LEFT); } }
@Override public void setSelected(boolean selected) { if (selected){ TextViewCompat.setCompoundDrawablesRelative( this,selectDrawable,null ); this.setTextColor(selectColor); }else { TextViewCompat.setCompoundDrawablesRelative( this,normalDrawable,null ); this.setTextColor(normalColor); } super.setSelected(selected); }
public void setData(Collection<Row> rows) { gridLayout.removeViews(1,gridLayout.getChildCount() - 1); for (Row row : rows) { { TextView nameView = new TextView(getContext()); TextViewCompat.setTextAppearance(nameView,android.support.v7.appcompat.R.style.TextAppearance_AppCompat_Body1); nameView.setText(row.name()); GridLayout.LayoutParams params = new GridLayout.LayoutParams(); params.columnSpec = GridLayout.spec(GridLayout.UNDEFINED,1f); gridLayout.addView(nameView,params); } { TextView valueView = new TextView(getContext()); TextViewCompat.setTextAppearance(valueView,android.support.v7.appcompat.R.style.TextAppearance_AppCompat_Body1); valueView.setText(row.value()); gridLayout.addView(valueView); } } }
void updateCounter(int length) { boolean wasCounterOverflowed = counterOverflowed; if (counterMaxLength == INVALID_MAX_LENGTH) { counterView.setText(String.valueOf(length)); counterOverflowed = false; } else { counterOverflowed = length > counterMaxLength; if (wasCounterOverflowed != counterOverflowed) { TextViewCompat.setTextAppearance(counterView,counterOverflowed ? counterOverflowTextAppearance : counterTextAppearance); } setCounterText(length); } if (editText != null && wasCounterOverflowed != counterOverflowed) { updateLabelState(false); updateEditTextBackground(); } }
@UiThreadTest @Test public void testMaintainsstartEndCompoundDrawables() throws Throwable { final Activity activity = activityTestRule.getActivity(); // Set a kNown set of test compound drawables on the EditText final Drawable start = new ColorDrawable(Color.RED); final Drawable top = new ColorDrawable(Color.GREEN); final Drawable end = new ColorDrawable(Color.BLUE); final Drawable bottom = new ColorDrawable(Color.BLACK); final TextInputEditText editText = new TextInputEditText(activity); TextViewCompat.setCompoundDrawablesRelative(editText,start,top,end,bottom); // Now add the EditText to a TextInputLayout TextInputLayout til = activity.findViewById(R.id.textinput_noedittext); til.addView(editText); // Finally assert that all of the drawables are untouched final Drawable[] compoundDrawables = TextViewCompat.getCompoundDrawablesRelative(editText); assertSame(start,compoundDrawables[0]); assertSame(top,compoundDrawables[1]); assertSame(end,compoundDrawables[2]); assertSame(bottom,compoundDrawables[3]); }
@Override public void setIcon(Drawable icon) { if (icon != null) { if (hasIconTintList) { Drawable.ConstantState state = icon.getConstantState(); icon = DrawableCompat.wrap(state == null ? icon : state.newDrawable()).mutate(); DrawableCompat.setTintList(icon,iconTintList); } icon.setBounds(0,iconSize,iconSize); } else if (needsEmptyIcon) { if (emptyDrawable == null) { emptyDrawable = ResourcesCompat.getDrawable( getResources(),R.drawable.navigation_empty_icon,getContext().getTheme()); if (emptyDrawable != null) { emptyDrawable.setBounds(0,iconSize); } } icon = emptyDrawable; } TextViewCompat.setCompoundDrawablesRelative(textView,icon,null); }
void setTextAppearanceCompatWithErrorFallback(TextView textView,@StyleRes int textAppearance) { boolean useDefaultColor = false; try { TextViewCompat.setTextAppearance(textView,textAppearance); if (VERSION.SDK_INT >= VERSION_CODES.M && textView.getTextColors().getDefaultColor() == Color.magenta) { // Caused by our theme not extending from Theme.Design*. On API 23 and // above,unresolved theme attrs result in magenta rather than an exception. // Flag so that we use a decent default useDefaultColor = true; } } catch (Exception e) { // Caused by our theme not extending from Theme.Design*. Flag so that we use // a decent default useDefaultColor = true; } if (useDefaultColor) { // Probably caused by our theme not extending from Theme.Design*. Instead // we manually set something appropriate TextViewCompat.setTextAppearance(textView,R.style.TextAppearance_AppCompat_Caption); textView.setTextColor(ContextCompat.getColor(getContext(),R.color.error_color_material)); } }
@Override public void bindView(View view,Context context,Cursor cursor) { ViewHolder holder = (ViewHolder) view.getTag(); Event event = DatabaseManager.toEvent(cursor,holder.event); holder.event = event; holder.time.setText(timeDateFormat.format(event.getStartTime())); if ((currentTime != -1L) && event.isRunningAtTime(currentTime)) { // Contrast colors for running event holder.time.setBackgroundColor(timeRunningBackgroundColor); holder.time.setTextColor(timeRunningForegroundColor); } else { // normal colors holder.time.setBackgroundColor(timeBackgroundColor); holder.time.setTextColor(timeForegroundColor); } holder.title.setText(event.getTitle()); int bookmarkDrawable = DatabaseManager.toBookmarkStatus(cursor) ? R.drawable.ic_bookmark_grey600_24dp : 0; TextViewCompat.setCompoundDrawablesRelativeWithIntrinsicBounds(holder.title,bookmarkDrawable,0); String personsSummary = event.getPersonsSummary(); holder.persons.setText(personsSummary); holder.persons.setVisibility(TextUtils.isEmpty(personsSummary) ? View.GONE : View.VISIBLE); holder.room.setText(event.getRoomName()); }
@Override public View getView(int position,View convertView,ViewGroup parent) { if (convertView == null) { convertView = inflater.inflate(R.layout.item_main_menu,false); convertView.setonClickListener(sectionClickListener); } Section section = getItem(position); convertView.setSelected(section == currentSection); TextView tv = (TextView) convertView.findViewById(R.id.section_text); SpannableString sectionTitle = new SpannableString(getString(section.getTitleResId())); Drawable sectionIcon = getResources().getDrawable(section.getIconResId()); if (section == currentSection) { // Special color for the current section sectionTitle.setSpan(new ForegroundColorSpan(currentSectionForegroundColor),sectionTitle.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // We need to mutate the drawable before applying the ColorFilter,or else all the similar drawable instances will be tinted. sectionIcon.mutate().setColorFilter(currentSectionForegroundColor,PorterDuff.Mode.SRC_IN); } tv.setText(sectionTitle); TextViewCompat.setCompoundDrawablesRelativeWithIntrinsicBounds(tv,sectionIcon,null); return convertView; }
@Override public void bindView(View view,holder.event); holder.event = event; holder.title.setText(event.getTitle()); int bookmarkDrawable = DatabaseManager.toBookmarkStatus(cursor) ? R.drawable.ic_bookmark_grey600_24dp : 0; TextViewCompat.setCompoundDrawablesRelativeWithIntrinsicBounds(holder.title,0); String personsSummary = event.getPersonsSummary(); holder.persons.setText(personsSummary); holder.persons.setVisibility(TextUtils.isEmpty(personsSummary) ? View.GONE : View.VISIBLE); holder.trackName.setText(event.getTrack().getName()); Date startTime = event.getStartTime(); Date endTime = event.getEndTime(); String startTimeString = (startTime != null) ? timeDateFormat.format(startTime) : "?"; String endTimeString = (endTime != null) ? timeDateFormat.format(endTime) : "?"; String details; if (showDay) { details = String.format("%1$s,%2$s ― %3$s | %4$s",event.getDay().getShortName(),startTimeString,endTimeString,event.getRoomName()); } else { details = String.format("%1$s ― %2$s | %3$s",event.getRoomName()); } holder.details.setText(details); }
private void updateViewHolderAppearance(@NonNull LightningViewHolder viewHolder,boolean isForeground) { if (isForeground) { Drawable foregroundDrawable = null; if (!mDrawerTabs) { foregroundDrawable = new BitmapDrawable(getResources(),mForegroundTabBitmap); if (!mIsIncognito && mColorMode) { foregroundDrawable.setColorFilter(mUiController.getUiColor(),PorterDuff.Mode.SRC_IN); } } TextViewCompat.setTextAppearance(viewHolder.txtTitle,R.style.boldText); if (!mDrawerTabs) { Drawableutils.setBackground(viewHolder.layout,foregroundDrawable); } } else { TextViewCompat.setTextAppearance(viewHolder.txtTitle,R.style.normalText); if (!mDrawerTabs) { Drawableutils.setBackground(viewHolder.layout,mBackgroundTabDrawable); } } }
private TextView createTitle(SwipeMenuItem item) { TextView textView = new TextView(getContext()); textView.setText(item.getText()); textView.setGravity(Gravity.CENTER); int textSize = item.getTextSize(); if (textSize > 0) textView.setTextSize(TypedValue.COMPLEX_UNIT_SP,textSize); ColorStateList textColor = item.getTitleColor(); if (textColor != null) textView.setTextColor(textColor); int textAppearance = item.getTextAppearance(); if (textAppearance != 0) TextViewCompat.setTextAppearance(textView,textAppearance); Typeface typeface = item.getTextTypeface(); if (typeface != null) textView.setTypeface(typeface); return textView; }
public void setIcon(Drawable paramDrawable) { Drawable.ConstantState localConstantState; if (paramDrawable != null) { localConstantState = paramDrawable.getConstantState(); if (localConstantState != null) { break label52; } } for (;;) { paramDrawable = DrawableCompat.wrap(paramDrawable).mutate(); paramDrawable.setBounds(0,this.mIconSize,this.mIconSize); DrawableCompat.setTintList(paramDrawable,this.mIconTintList); TextViewCompat.setCompoundDrawablesRelative$16207aff(this.mTextView,paramDrawable); return; label52: paramDrawable = localConstantState.newDrawable(); } }
public AuthorLayoutViewHolder(View itemView) { profileRow = (ViewGroup) itemView; profileImageView = (ImageView) itemView.findViewById(R.id.profile_image); authorTextView = (TextView) itemView.findViewById(R.id.discussion_author_text_view); dateTextView = (TextView) itemView.findViewById(R.id.discussion_date_text_view); answerTextView = (TextView) itemView.findViewById(R.id.discussion_responses_answer_text_view); final Context context = answerTextView.getContext(); TextViewCompat.setCompoundDrawablesRelativeWithIntrinsicBounds( answerTextView,new IconDrawable(context,FontAwesomeIcons.fa_check_square_o) .sizeRes(context,R.dimen.edx_base) .colorRes(context,R.color.edx_success_accent),null); RoboGuice.getInjector(context).injectMembers(this); }
private static TextView createField(@NonNull LayoutInflater inflater,@NonNull ViewGroup parent,@NonNull final FormField field,@NonNull final String value,boolean readOnly,@NonNull View.OnClickListener onClickListener) { final TextView textView = (TextView) inflater.inflate(R.layout.edit_user_profile_field,false); final SpannableString formattedValue = new SpannableString(value); formattedValue.setSpan(new ForegroundColorSpan(parent.getResources().getColor(R.color.edx_brand_gray_base)),formattedValue.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); textView.setText(ResourceUtil.getFormattedString(parent.getResources(),R.string.edit_user_profile_field,new HashMap<String,CharSequence>() {{ put("label",field.getLabel()); put("value",formattedValue); }})); Context context = parent.getContext(); TextViewCompat.setCompoundDrawablesRelativeWithIntrinsicBounds( textView,FontAwesomeIcons.fa_angle_right) .colorRes(context,R.color.edx_brand_gray_back) .sizeDp(context,24),null); if (readOnly) { textView.setEnabled(false); textView.setBackgroundColor(textView.getResources().getColor(R.color.edx_brand_gray_x_back)); } else { textView.setonClickListener(onClickListener); } parent.addView(textView); return textView; }
@Override @NonNull public View getDropDownView(int position,@Nullable View convertView,@NonNull ViewGroup parent) { TextView textView = initTextView(position,convertView,parent); if (textView != convertView) { Drawable icon = createIcon(); StateListDrawable statefulIcon = new StateListDrawable(); statefulIcon.setBounds(icon.getBounds()); statefulIcon.addState(ACTIVATED_STATE_SET,icon); TextViewCompat.setCompoundDrawablesRelative( textView,statefulIcon,null); } ViewGroup.LayoutParams layoutParams = textView.getLayoutParams(); if (layoutParams.height == ViewGroup.LayoutParams.MATCH_PARENT) { layoutParams.height = spinner.getHeight() - spinner.getPaddingTop() - spinner.getPaddingBottom(); } return textView; }
@Override public void setIcon(Drawable icon) { if (icon != null) { if (mHasIconTintList) { Drawable.ConstantState state = icon.getConstantState(); icon = DrawableCompat.wrap(state == null ? icon : state.newDrawable()).mutate(); DrawableCompat.setTintList(icon,mIconTintList); } icon.setBounds(0,mIconSize,mIconSize); } else if (mNeedsEmptyIcon) { if (mEmptyDrawable == null) { mEmptyDrawable = ResourcesCompat.getDrawable( getResources(),getContext().getTheme()); if (mEmptyDrawable != null) { mEmptyDrawable.setBounds(0,mIconSize); } } icon = mEmptyDrawable; } TextViewCompat.setCompoundDrawablesRelative(mTextView,null); }
void updateCounter(int length) { boolean wasCounterOverflowed = mCounterOverflowed; if (mCounterMaxLength == INVALID_MAX_LENGTH) { mCounterView.setText(String.valueOf(length)); mCounterOverflowed = false; } else { mCounterOverflowed = length > mCounterMaxLength; if (wasCounterOverflowed != mCounterOverflowed) { TextViewCompat.setTextAppearance( mCounterView,mCounterOverflowed ? mCounterOverflowTextAppearance : mCounterTextAppearance); } mCounterView.setText( getContext().getString(R.string.character_counter_pattern,mCounterMaxLength)); } if (mEditText != null && wasCounterOverflowed != mCounterOverflowed) { updateLabelState(false); updateEditTextBackground(); } }
@Override public View getView(int position,false); convertView.setonClickListener(sectionClickListener); } Section section = getItem(position); convertView.setSelected(section == currentSection); TextView tv = convertView.findViewById(R.id.section_text); SpannableString sectionTitle = new SpannableString(getString(section.getTitleResId())); Drawable sectionIcon = AppCompatResources.getDrawable(MainActivity.this,section.getIconResId()); if (section == currentSection) { // Special color for the current section sectionTitle.setSpan(new ForegroundColorSpan(currentSectionForegroundColor),null); return convertView; }
@Override public void onBindViewHolder(ViewHolder holder,Cursor cursor) { Context context = holder.itemView.getContext(); Event event = DatabaseManager.toEvent(cursor,holder.event); holder.event = event; holder.title.setText(event.getTitle()); boolean isBookmarked = DatabaseManager.toBookmarkStatus(cursor); Drawable bookmarkDrawable = isBookmarked ? AppCompatResources.getDrawable(context,R.drawable.ic_bookmark_grey600_24dp) : null; TextViewCompat.setCompoundDrawablesRelativeWithIntrinsicBounds(holder.title,null); holder.title.setContentDescription(isBookmarked ? context.getString(R.string.in_bookmarks_content_description,event.getTitle()) : null ); String personsSummary = event.getPersonsSummary(); holder.persons.setText(personsSummary); holder.persons.setVisibility(TextUtils.isEmpty(personsSummary) ? View.GONE : View.VISIBLE); Track track = event.getTrack(); holder.trackName.setText(track.getName()); holder.trackName.setTextColor(ContextCompat.getColor(context,track.getType().getColorResId())); holder.trackName.setContentDescription(context.getString(R.string.track_content_description,track.getName())); bindDetails(holder,event); }
public static boolean determineNumberOfValidGroupLines(FormEntryActivity activity,Rect newRootViewDimensions,boolean hasGroupLabel,boolean shouldHideGroupLabel) { FrameLayout header = (FrameLayout)activity.findViewById(R.id.form_entry_header); TextView groupLabel = ((TextView)header.findViewById(R.id.form_entry_group_label)); int numberOfGroupLinesAllowed = getNumberOfGroupLinesAllowed(groupLabel,newRootViewDimensions,activity); if (TextViewCompat.getMaxLines(groupLabel) != numberOfGroupLinesAllowed) { shouldHideGroupLabel = numberOfGroupLinesAllowed == 0; groupLabel.setMaxLines(numberOfGroupLinesAllowed); updateGroupViewVisibility(header,groupLabel,hasGroupLabel,shouldHideGroupLabel); } return shouldHideGroupLabel; }
private void addLinkItemView(ViewGroup parent,0); parent.addView(view); view.setonClickListener(new View.OnClickListener() { @Override public void onClick(View v) { onLinkClicked(url); } }); }
public void setItems(final int[] itemsTextsResIds,final int[] itemsIconsResIds) { mItemsTextsResIds = itemsTextsResIds; mItemsIconsResIds = itemsIconsResIds; if (mItemsTextsResIds != null && mSelectedItemPosition >= 0 && mSelectedItemPosition < mItemsTextsResIds.length) setText(mItemsTextsResIds[mSelectedItemPosition]); TextViewCompat.setCompoundDrawablesRelativeWithIntrinsicBounds(this,isPopupShown() ? mOpenedDrawable : mClosedDrawable,null); }
public void setSelectedItemPosition(final int selectedItemPosition) { int lastSelectedItemPosition = mSelectedItemPosition; mSelectedItemPosition = selectedItemPosition; final String itemText = mItemsTextsResIds != null && mSelectedItemPosition >= 0 && mSelectedItemPosition < mItemsTextsResIds.length ? getResources().getString(mItemsTextsResIds[mSelectedItemPosition]) : null; setText(itemText); TextViewCompat.setCompoundDrawablesRelativeWithIntrinsicBounds(FullSizePopupSpinner.this,mClosedDrawable,null); if (mOnItemSelectedListener != null) mOnItemSelectedListener.onItemSelected(FullSizePopupSpinner.this,selectedItemPosition,itemText,lastSelectedItemPosition); }
private static void show(final CharSequence text,duration); // solve the font of toast TextView tvMessage = (TextView) sToast.getView().findViewById(android.R.id.message); TextViewCompat.setTextAppearance(tvMessage,android.R.style.TextAppearance); tvMessage.setTextColor(msgColor); setBgAndGravity(); sToast.show(); } }); }
/** * Called after we bind the views,this will allow the step instruction {@link TextView} * to automatically re-size based on the length of the text. */ private void initInstructionAutoSize() { TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(upcomingPrimaryText,26,30,1,TypedValue.COMPLEX_UNIT_SP); TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(upcomingSecondaryText,20,TypedValue.COMPLEX_UNIT_SP); TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(upcomingdistanceText,16,TypedValue.COMPLEX_UNIT_SP); }
/** * Called after we bind the views,this will allow the step instruction {@link TextView} * to automatically re-size based on the length of the text. */ private void initInstructionAutoSize() { TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(stepPrimaryText,28,TypedValue.COMPLEX_UNIT_SP); TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(stepSecondaryText,TypedValue.COMPLEX_UNIT_SP); TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(stepdistanceText,TypedValue.COMPLEX_UNIT_SP); }
NoVersionsViewHolder(View view) { super(view); headerView = (TextView) view.findViewById(R.id.information); TextViewCompat.setCompoundDrawablesRelativeWithIntrinsicBounds(headerView,R.drawable.ic_access_time_24dp_grey600,0); itemView.setonClickListener(new View.OnClickListener() { @Override public void onClick(View v) { explainIncompatibLeversions(); } }); }
/** * Sets the text color and size for the error message from the specified * TextAppearance resource. * * @attr ref android.support.design.R.styleable#TextInputLayout_errorTextAppearance */ public void setErrorTextAppearance(@StyleRes int resId) { mErrorTextAppearance = resId; if (mErrorView != null) { TextViewCompat.setTextAppearance(mErrorView,resId); } }
/** * Whether the character counter functionality is enabled or not in this layout. * * @attr ref android.support.design.R.styleable#TextInputLayout_counterEnabled */ public void setCounterEnabled(boolean enabled) { if (mCounterEnabled != enabled) { if (enabled) { mCounterView = new TextView(getContext()); mCounterView.setId(R.id.textinput_counter); if (mTypeface != null) { mCounterView.setTypeface(mTypeface); } mCounterView.setMaxLines(1); try { TextViewCompat.setTextAppearance(mCounterView,mCounterTextAppearance); } catch (Exception e) { // Probably caused by our theme not extending from Theme.Design*. Instead // we manually set something appropriate TextViewCompat.setTextAppearance( mCounterView,android.R.style.TextAppearance_Material_Caption); mCounterView.setTextColor( ContextCompat.getColor(getContext(),R.color.design_textinput_error_color_light)); } addindicator(mCounterView,-1); if (mEditText == null) { updateCounter(0); } else { updateCounter(mEditText.getText().length()); } } else { removeIndicator(mCounterView); mCounterView = null; } mCounterEnabled = enabled; } }
public static void setupTextColor(TextView view,AttributeSet attrs) { StyledAttributesHelper r = StyledAttributesHelper.obtainStyledAttributes(view.getContext(),THEME_ATTRS); int colorResId = r.getResourceId(android.R.attr.textColor,0); if (colorResId == 0) { int appearanceRes = r.getResourceId(android.R.attr.textAppearance,0); if (appearanceRes != 0) { StyledAttributesHelper ta = StyledAttributesHelper.obtainStyledAttributes( view.getContext(),appearanceRes,new int[] { android.R.attr.textColor }); colorResId = ta.getResourceId(android.R.attr.textColor,0); ta.recycle(); } } if (colorResId == R.color.colorPrimary) view.setTextColor(ThemeHelper.getPrimaryColor(view.getContext())); else if (colorResId == R.color.colorAccent) view.setTextColor(ThemeHelper.getAccentColor(view.getContext())); colorResId = r.getResourceId(android.R.attr.textColorLink,0); if (colorResId == R.color.colorAccent) view.setLinkTextColor(ThemeHelper.getAccentColor(view.getContext())); Drawable[] drawables = TextViewCompat.getCompoundDrawablesRelative(view); boolean hasChange = false; for (int i = 0; i < 4; i++) { Drawable newDrawable = tintDrawable(view.getContext(),r,DRAWABLE_ATTRS[i],drawables[i]); if (newDrawable != drawables[i]) { drawables[i] = newDrawable; hasChange = true; } } if (hasChange) TextViewCompat.setCompoundDrawablesRelative(view,drawables[0],drawables[1],drawables[2],drawables[3]); r.recycle(); }
今天关于添加Maven存储库会导致错误-无法实例化android.support.v7.widget.AppcompatTextView的讲解已经结束,谢谢您的阅读,如果想了解更多关于android.support.v17.leanback.widget.TitleView导致错误、android.support.v4.widget.SearchViewCompat.OnQueryTextListenerCompat的实例源码、android.support.v4.widget.SearchViewCompat的实例源码、android.support.v4.widget.TextViewCompat的实例源码的相关知识,请在本站搜索。
本文标签: