- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
当我为 SlidingTabLayout 对象设置颜色时出现错误。这是我的 mainActivity,首先我发现 getResource.getColor 已被弃用。所以我使用了 contextCompat.getColor。但现在它将变为空。
public class MainActivity extends AppCompatActivity {
private Toolbar toolbar;
private ViewPager mPager;
private SlidingTabLayout mTabs;
private MyPagerAdapter adapter;
Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toolbar = (Toolbar) findViewById(R.id.app_bar);
mPager = (ViewPager) findViewById(R.id.pager);
mTabs = (SlidingTabLayout) findViewById(R.id.tabs);
setSupportActionBar(toolbar);
assert getSupportActionBar() != null;
getSupportActionBar().setDisplayShowHomeEnabled(true);
NavigationDrawerFragment navigationDrawerFragment = (NavigationDrawerFragment)
getSupportFragmentManager().findFragmentById(R.id.fragment_nav_drawer);
navigationDrawerFragment.setUp(R.id.fragment_nav_drawer, (DrawerLayout) findViewById(R.id.drawer_layout), toolbar);
adapter = new MyPagerAdapter(getSupportFragmentManager(),MainActivity.this);
mPager.setAdapter(adapter);
mTabs.setViewPager(mPager);
mTabs.setDistributeEvenly(true);
int bgColor = ContextCompat.getColor(context,R.color.colorAccent);
mTabs.setBackgroundColor(bgColor);
mTabs.setSelectedIndicatorColors(ContextCompat.getColor(context, R.color.colorAccent));
mTabs.invalidate();
mTabs.setCustomTabView(R.layout.custom_tab_view,R.id.tabText);
}
@Deprecated
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Deprecated
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
if (id == R.id.navigate) {
startActivity(new Intent(this, SubActivity.class));
}
return super.onOptionsItemSelected(item);
}
public static class MyFragment extends Fragment {
private TextView textView;
public static MyFragment getInstance(int position) {
MyFragment myFragment = new MyFragment();
Bundle args = new Bundle();
args.putInt("position", position);
myFragment.setArguments(args);
return myFragment;
}
@Override
public View onCreateView(LayoutInflater inflater,@Nullable ViewGroup container, Bundle savedInstanceState) {
View layout = inflater.inflate(R.layout.fragment_my, container, false);
textView = (TextView) layout.findViewById(R.id.position);
Bundle bundle = getArguments();
if (bundle != null) {
textView.setText(bundle.getInt("position"));
}
return layout;
}
}
class MyPagerAdapter extends FragmentStatePagerAdapter {
Context mContext;
int icons[] = {R.drawable.home,R.drawable.hot_article,R.drawable.dizzy_person};
String[] tabText = getResources().getStringArray(R.array.tabs);
public MyPagerAdapter(FragmentManager fm,Context context ) {
super(fm);
this.mContext = context;
}
@Override
public Fragment getItem(int position) {
MyFragment myFragment = MyFragment.getInstance(position);
return myFragment;
}
@Override
public CharSequence getPageTitle(int position) {
Drawable drawable = ResourcesCompat.getDrawable(getResources(),icons[position],null);
drawable.setBounds(0, 0, 36, 36);
ImageSpan imageSpan = new ImageSpan(drawable);
SpannableString spannableString = new SpannableString(" ");
spannableString.setSpan(imageSpan,0,spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
return spannableString;
}
@Override
public int getCount() {
return 3;
}
}
}
棉花糖有没有新的方法来解决这个问题?
最佳答案
因为context还没有初始化。我建议你不要到处乱引用 Context
。 Activity
是 Context 的子类。您可以直接使用 this
或 NameOfActivity.this
来访问上下文。
int bgColor = ContextCompat.getColor(context, R.color.colorAccent);
应该是
int bgColor = ContextCompat.getColor(this, R.color.colorAccent);
关于android - ContextCompat.getcolor() 转到空对象引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35624743/
我知道这里已经提出了几个类似的问题,但是没有一个解决方案对我有用。 我刚刚将我的应用程序从 Ecilpse(juno) 转移到 Android Studio 1.5.1;以及从 API 19 到 AP
我正在使用 ContextCompat.getColor 获取颜色资源,并向后兼容已弃用的方法,例如 Context 的 getColor。 例如: ContextCompat.getColor(co
我正在使用第三方库来使用“幻灯片”( fragment )创建介绍。但是,我收到了 ResourcesNotFoundException,您可以在下面看到。 我不知道异常中提到的这个getColor方
我需要向后端服务器发送一个颜色代码(转发给 iOS 客户端)但是 ContextCompact.getColor(context, colorResourceId); 返回一个其他客户端无法识别的负值
在我正在开发的 QT 应用程序中,我们让用户使用 QColorDialog::getColor() 选择一种颜色。基于外部事件,我需要取消这个打开的对话框。有办法吗?我没有在 QColorDialog
我正在尝试这段代码: im = Image.open("myimage") colors = im.getcolors() print colors 它返回“无”。所以我尝试了这个: im = Ima
代码: backgroundColor = typedArray.getColor(R.styleable.TapBarMenu_tbm_backgroundColor, ContextCompat.
当我为 SlidingTabLayout 对象设置颜色时出现错误。这是我的 mainActivity,首先我发现 getResource.getColor 已被弃用。所以我使用了 contextCom
我正在尝试用 ContextCompat.GetColor 替换 Resources.GetColor,但最后一个不返回颜色,我不知道我应该使用什么来代替 Resources.GetColor(从 A
我正在为我的 Android 应用开发夜间模式。我正在使用 ContextCompat.getColor 以编程方式为某些 UI 元素获取颜色,但是这种方法无法获取正确的颜色。当应用程序处于夜间模式时
这个问题在这里已经有了答案: getColor(int id) deprecated on Android 6.0 Marshmallow (API 23) (13 个回答) 关闭6年前. 使用:bu
本文整理了Java中am.widget.zxingscanview.ZxingForegroundView.getColor()方法的一些代码示例,展示了ZxingForegroundView.get
我正在尝试使用 RecycleView Adapter 中资源的颜色 override fun onBindViewHolder(holder: NavlogViewHolder, position:
TL,博士; ContextCompat.getColor()不使用夜间颜色(values-night/colors.xml),但在启用夜间模式时应该使用。 这是问题: 大家好, 所以我正在为我的 A
我有一个小程序在加载时在这一行生成空指针异常(但只是有时): (txtpnNoSeHa 是扩展 JPanel 的类中的 JEditorPane。此面板在 applet 构造函数中实例化) txtpnN
我有一个获取用户输入的函数,它应该从选项列表中验证用户输入。函数的最后一部分,如果结果中有真 bool 值,我循环结果并返回 true,似乎无法正常工作。它一直返回错误。 function g
我正在尝试使用 getColor(String name) 函数更改颜色,但它似乎不起作用。可能是我犯了某种错误。这是代码: public class ComboBoxPractice extends
我一直在尝试使用自定义颜色设置按钮和其他项目。我是 java 的新手,我一直在努力学习如何正确使用上下文。我做了一些研究,但仍然无法找到解决方案。 android 监视器错误是一个空指针异常,这是它有
我正在尝试更改 java 代码中的文本颜色(我不想在 xml 中更改它)并且我知道我需要调用 getResource()。但我收到“无法解析方法 getResource()”的错误。我尝试声明 Con
在 Android M 中,我看到 getColor(int id) 被替换为 ContextCompat.getColor(Context context, int id)。 我刚开始接触 Andr
我是一名优秀的程序员,十分优秀!