- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试更改从GitHub提取的com.divyeshbc编写的代码。原始代码在main_activity中设置了一个工具栏,并在其中填充了图标。我想将此代码重新打包为一个单独的类,以便单击按钮时可以将工具栏作为对话框弹出。我有两个直接的问题。
1:类型“android.support.v7.widget.Toolbar”未被识别为与“Toolbar”相同。我必须强制转换所有变量,以便findViewById()正常工作。崩溃发生在“findViewById(R.id.toolbar)”中的SlidingTab.initialize()中。查找失败,程序崩溃。
2 :(工具栏)FindViewById(R.id.toolbar)在main_activity中工作正常,但在从main Activity 中调用的方法中效果不佳。我试图将setContentView()强制为一个我知道持有该ID的 View ,但它没有帮助。当查找失败时,程序崩溃。
我正在使用最新的Android IDE(我认为是1.5)和最新的SDK。我被困住了-我将不胜感激任何建议。
这是我的MainActivity
package com.divyeshbc.slidingscrollbar;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.ImageSpan;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.support.v7.widget.Toolbar;
import com.divyeshbc.slidingscrollbar.tabs.SlidingTabLayout;
import com.divyeshbc.slidingscrollbar.SlidingTab;
public class
MainActivity extends BaseActivity {
public ViewPager mPager;
public SlidingTabLayout mTabs;
public SlidingTab mSlidingTab;
public android.support.v7.widget.Toolbar mToolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sliding_tab);
if (mToolbar != null) {
//Use current toolbar
setSupportActionBar(mToolbar);
} else {
mToolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.toolbar);
}
mSlidingTab = new SlidingTab();
mSlidingTab.initialize();
mTabs = mSlidingTab.getSlidingTabLayout();
mPager = mSlidingTab.getViewPager();
//setContentView(R.layout.sliding_tab);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
class MyPagerAdapter extends FragmentPagerAdapter {
//Setting up integer array of icons
int icons[] = {R.drawable.about_us, R.drawable.campus, R.drawable.events, R.drawable.learning, R.drawable.sewa};
//Defined from strings.xml
String[] tabText = getResources().getStringArray(R.array.tabs);
public MyPagerAdapter(FragmentManager fm) {
super(fm);
//Initialising the strings array of tabs
tabText = getResources().getStringArray(R.array.tabs);
}
@Override
public Fragment getItem(int position) {
//Initialising Fragment
//Passing in the position so that position of the fragment is returned
MyFragment myFragment = MyFragment.getInstance(position);
return myFragment;
}
@Override
public CharSequence getPageTitle(int position) {
//Constructing drawable object from the icon position
Drawable drawable = getResources().getDrawable(icons[position]);
//Defining the bounds for each icon as this is not automatically calculated
drawable.setBounds(0, 0, 90, 90);
//Passing icons as drawable objects into the imageSpan. This means it can be placed amongst the text
ImageSpan imageSpan = new ImageSpan(drawable);
//Spannable strings allows us to embed images with text (attach/detach images)
SpannableString spannableString = new SpannableString(" ");
//Here setting the span of the icons amongst the scroll bar. Using the array of icons, starting at position 0,
//till the end, SPAN_EXCLUSIVE_EXCLUSIVE will ensure only the images in the range are included, nothing more,
//nothing less
spannableString.setSpan(imageSpan, 0, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//Return the spannable string with icons embedded
return spannableString;
}
@Override
public int getCount() {
return 5;
}
}
public static class MyFragment extends Fragment {
private TextView textView;
//Method to return instance of the fragment. Passing in position to show which position is currently being shown in the fragment
public static MyFragment getInstance(int position) {
//Construct the fragment
MyFragment myFragment = new MyFragment();
//New bundle instance
Bundle args = new Bundle();
//Passing in the Integer position of the fragment into the argument
args.putInt("position", position);
//Setting the argument of the fragment to be the position
myFragment.setArguments(args);
//Return the fragment
return myFragment;
}
@Override
//This will handle how the fragment will display content
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle saveInstanceState) {
//Inflate the fragment_main layout
View layout = inflater.inflate(R.layout.fragment_main, container, false);
//Initialising the text view
textView = (TextView) layout.findViewById(R.id.position);
//Getting a reference to the TextView (as defined in fragment_main) and set it to a value
Bundle bundle = getArguments();
//Safety Check
if (bundle != null) {
textView.setText("The page currently selected is " + bundle.getInt("position"));
}
return layout;
}
}
}
package com.divyeshbc.slidingscrollbar;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.ImageSpan;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.support.v7.widget.Toolbar;
import com.divyeshbc.slidingscrollbar.tabs.SlidingTabLayout;
public class
SlidingTab extends AppCompatActivity {
public ViewPager mPager;
public SlidingTabLayout mTabs;
public android.support.v7.widget.Toolbar mToolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Calling Activate Toolbar method
//mToolbar = activateToolBar();
if (mToolbar != null) {
//Use current toolbar
setSupportActionBar(mToolbar);
} else {
mToolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.toolbar);
}
mPager = (ViewPager) findViewById(R.id.pager);
//Setting the Adapter on the view pager first. Passing the fragment manager through as an argument
mPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
mTabs = (SlidingTabLayout) findViewById(R.id.tabs);
//Setting the custom Tab View as the Sliding Tabs Layout
mTabs.setCustomTabView(R.layout.custom_tab_view, R.id.tabText);
mTabs.setDistributeEvenly(true);
//mTabs.setSelectedIndicatorColors(getResources().
//getColor(R.color.tabIndicatorColour));
mTabs.setBackgroundColor(getResources().getColor(R.color.basePrimaryBackgroundColour));
//Setting the ViewPager as the tabs
mTabs.setViewPager(mPager);
}
public void initialize() {
if (mToolbar != null) {
//Use current toolbar
setSupportActionBar(mToolbar);
} else {
mToolbar = (android.support.v7.widget.Toolbar)
findViewById(R.id.toolbar);
}
mPager = (ViewPager) findViewById(R.id.pager);
//Setting the Adapter on the view pager first. Passing the fragment manager through as an argument
mPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
mTabs = (SlidingTabLayout) findViewById(R.id.tabs);
//Setting the custom Tab View as the Sliding Tabs Layout
mTabs.setCustomTabView(R.layout.custom_tab_view, R.id.tabText);
mTabs.setDistributeEvenly(true);
//mTabs.setSelectedIndicatorColors(getResources().getColor(R.color.tabIndicatorColour));
mTabs.setBackgroundColor(getResources().getColor(R.color.basePrimaryBackgroundColour));
//Setting the ViewPager as the tabs
mTabs.setViewPager(mPager);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public SlidingTabLayout getSlidingTabLayout() {
return mTabs;
}
public ViewPager getViewPager() {
return mPager;
}
class MyPagerAdapter extends FragmentPagerAdapter {
//Setting up integer array of icons
int icons[] = {R.drawable.about_us, R.drawable.campus, R.drawable.events, R.drawable.learning, R.drawable.sewa};
//Defined from strings.xml
String[] tabText = getResources().getStringArray(R.array.tabs);
public MyPagerAdapter(FragmentManager fm) {
super(fm);
//Initialising the strings array of tabs
tabText = getResources().getStringArray(R.array.tabs);
}
@Override
public Fragment getItem(int position) {
//Initialising Fragment
//Passing in the position so that position of the fragment is returned
MyFragment myFragment = MyFragment.getInstance(position);
return myFragment;
}
@Override
public CharSequence getPageTitle(int position) {
//Constructing drawable object from the icon position
Drawable drawable = getResources().getDrawable(icons[position]);
//Defining the bounds for each icon as this is not automatically calculated
drawable.setBounds(0, 0, 90, 90);
//Passing icons as drawable objects into the imageSpan. This means it can be placed amongst the text
ImageSpan imageSpan = new ImageSpan(drawable);
//Spannable strings allows us to embed images with text (attach/detach images)
SpannableString spannableString = new SpannableString(" ");
//Here setting the span of the icons amongst the scroll bar. Using the array of icons, starting at position 0,
//till the end, SPAN_EXCLUSIVE_EXCLUSIVE will ensure only the images in the range are included, nothing more,
//nothing less
spannableString.setSpan(imageSpan, 0, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//Return the spannable string with icons embedded
return spannableString;
}
@Override
public int getCount() {
return 5;
}
}
public static class MyFragment extends Fragment {
private TextView textView;
//Method to return instance of the fragment. Passing in position to show which position is currently being shown in the fragment
public static MyFragment getInstance(int position) {
//Construct the fragment
MyFragment myFragment = new MyFragment();
//New bundle instance
Bundle args = new Bundle();
//Passing in the Integer position of the fragment into the argument
args.putInt("position", position);
//Setting the argument of the fragment to be the position
myFragment.setArguments(args);
//Return the fragment
return myFragment;
}
@Override
//This will handle how the fragment will display content
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle saveInstanceState) {
//Inflate the fragment_main layout
View layout = inflater.inflate(R.layout.fragment_main, container, false);
//Initialising the text view
textView = (TextView) layout.findViewById(R.id.position);
//Getting a reference to the TextView (as defined in fragment_main) and set it to a value
Bundle bundle = getArguments();
//Safety Check
if (bundle != null) {
textView.setText("The page currently selected is " + bundle.getInt("position"));
}
return layout;
}
}
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="10dp"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingTop="0dp"
tools:context=".MainActivityFragment">
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:toolbar="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
toolbar:theme="@style/ActionBarThemeOverlay"
toolbar:titleTextAppearance="@style/ActionBar.TitleText">
</android.support.v7.widget.Toolbar>
<com.divyeshbc.slidingscrollbar.tabs.SlidingTabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</LinearLayout>
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!--No Action Bar as the main theme is being replaced by custom Theme-->
</style>
<!-- Customize your theme here. -->
<!--Creating a Base-->
<style name="Theme.Base" parent="AppTheme">
<!--Similar to Inheritance, inheriting from AppTheme and extending ie. overriding defaults for custom-->
<!--Mapping actual android colour properties to our custom colours-->
<item name="colorPrimary">@color/basePrimaryBackgroundColour
</item> <!--Background colour-->
<item name="colorPrimaryDark">
@color/baseSecondaryBackgroundColour</item>
<item name="windowActionBar">false
</item> <!--Not using an Action Bar-->
<item name="android:windowNoTitle">true</item>
<!--Don't want to show a title-->
<item name="android:windowBackground">
@color/baseBackgroundColour</item>
<!--Default Background Coloer-->
</style>
<!--Basic Theme. Theme.Custom inherits from theme.base
which inherits from AppTheme -->
<style name="Theme.Custom" parent="Theme.Base"/>
<!-- The theme that will override the default action bar -->
<style name="ActionBarThemeOverlay" parent="">
<item name="android:textColorPrimary">
@color/basePrimaryTextColour</item>
<item name="colorControlHighlight">
@color/baseBackgroundColour</item>
<item name="android:actionMenuTextColor">
@color/basePrimaryTextColour</item>
<item name="android:textColorSecondary">
@color/baseSecondaryTextColour</item>
<item name="android:background">
@color/basePrimaryBackgroundColour</item>
</style>
<!--Action Bar Title Text -->
<style name="ActionBar.TitleText"
parent="TextAppearance.AppCompat.Widget.ActionBar.Title">
<!--Action Bar Title Text -->
<style name="ActionBar.TitleText" parent="TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/basePrimaryTextColour</item>
<item name="android:textSize">18sp</item> <!-- Standard Pixels -->
</style>
</resources>
最佳答案
替换为:
if (mToolbar != null) {
//Use current toolbar
setSupportActionBar(mToolbar); //Set toolbar before create?? NullPointerException it's obvious
} else {
mToolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.toolbar);
}
mToolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
关于android - Android工具栏崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34296755/
我有一段代码看起来像这样: void update_clock(uint8_t *time_array) { time_t time = *((time_t *) &time_array[0]
应用程序崩溃了 :( 请帮助我.. 在这方面失败了。我找不到错误?该应用程序可以连接到 iTunesConnect 但它会出错。 谁能根据下面的崩溃报告判断问题出在哪里? share_with_app
小二是新来的实习生,作为技术 leader,我给他安排了一个非常简单的练手任务,把前端 markdown 编辑器里上传的图片保存到服务器端,结果他真的就把图片直接保存到了服务器上,这下可把我气坏了,就
我正在创建一个函数,它将目录路径作为参数传递,或者如果它留空,则提示用户输入。 我已经设置了我的 PATH_MAX=100 和 if 语句来检查 if ((strlen(folder path) +
我已将“arial.ttf”文件(从我的/Windows/Fonts 文件夹中获取)加载到内存中,但是将其传递到 FT_New_Memory_Face 时会崩溃(在 FT_Open_Face 中的某处
我正在尝试在我的计算机上的两个控制台之间进行 rtsp 流。 在控制台 1 上,我有: ffmpeg -rtbufsize 100M -re -f dshow -s 320x240 -i video=
我正在尝试使用 scio_beast在一个项目中。我知道它还没有完成,但这并不重要。我已经设法让它工作得很好。 我现在正在尝试连接到 CloudFlare 后面的服务器,我知道我需要 SNI 才能工作
我有一个带有关联宏的下拉列表,如下所示: Sub Drop() If Range("Hidden1!A1") = "1" Then Sheets("Sheet1").Se
我对 bash 很陌生。我要做的就是运行这个nvvp -vm /usr/lib64/jvm/jre-1.8.0/bin/java无需记住最后的路径。我认为 instafix 就是这样做...... n
我在 Windows 上使用 XAMPP 已经两年左右了,它运行完美,没有崩溃没有问题。 (直到四个月前。) 大约四个月前,我们将服务器/系统升级到了更快的规范。 这是旧规范的内容 - Windows
我面临着一个非常烦人的 android 崩溃,它发生在大约 1% 的 PRODUCTION session 中,应用程序始终在后台运行。 Fatal Exception: android.app.Re
尝试使用下面的函数: public void createObjectType() { try { mCloudDB.createObjectType(ObjectTypeIn
由于我正在进行的一个项目,我在 CF11 管理员中弄乱了类路径,我设法使服务器崩溃,以至于我唯一得到的是一个漂亮的蓝屏和 500 错误.我已经检查了日志,我会把我能做的贴在帖子的底部,但我希望有人会启
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 10 个月前关闭。 Improve
我最近从 xcode 3.x 更新到 4.2,当我在 4.2 中运行应用程序时,我遇到了核心数据问题。我还更新到了 iOS 5,所以问题可能就在那里,我不太确定。 这些应用程序在 3.x 中运行良好,
我是一个相对较新的 iPhone 应用程序开发人员,所以我的知识有点粗略,所以如果这是一个微不足道的问题,请原谅我。 我有一个导航应用程序,它通过在navigationController对象上调用p
if ([MFMailComposeViewController canSendMail]) { MFMailComposeViewController *mailViewController
你能帮我吗? 我正在设置 UILocalNotification,当我尝试设置其 userInfo 字典时,它崩溃了。 fetchedObjects 包含 88 个对象。 这是代码: NSDi
为什么我的代码中突然出现 NSFastEnumeration Mutation Handler 崩溃。我很茫然为什么会突然出现这个崩溃以及如何解决它。 最佳答案 崩溃错误: **** 由于未捕获的异常
当我从表中删除行时,我的应用程序崩溃了。这是我检测到错误和堆栈跟踪的来源。谢谢! //delete row from database - (void)tableView:(UITableView *
我是一名优秀的程序员,十分优秀!