【问题标题】:Trouble with SliderLayout finding idSliderLayout 查找 id 的问题
【发布时间】:2018-02-03 00:49:48
【问题描述】:

我遇到了麻烦,我正在尝试在 NavigationDrawer 中创建 SliderLayout。昨天它工作得尽可能好,但是今天我打开了 android studio,滑块停止工作,我没有更改代码,现在,它抛出了一个异常 NullPointerException,这就是它所说的:Attempt to invoke virtual method 'void com.daimajia.slider.library.SliderLayout.addSlider(com.daimajia.slider.library.SliderTypes.BaseSliderView)' on a null object reference;

这是我现在使用的代码:

public class News extends NavigationDrawer implements BaseSliderView.OnSliderClickListener, ViewPagerEx.OnPageChangeListener {

private HashMap<String,String> map;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    startUp();
}

private void startUp(){
    setContentView(R.layout.news_navigation_activity);
    onCreateDrawer();
    onSlideShowCreate();
    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.getMenu().getItem(0).setChecked(true);

}

private void onSlideShowCreate(){
    map=new HashMap<String,String>();
    SliderLayout slide = findViewById(R.id.slider);
    map.put("Android CupCake", "http://androidblog.esy.es/images/cupcake-1.png");
    map.put("Android Donut", "http://androidblog.esy.es/images/donut-2.png");
    map.put("Android Eclair", "http://androidblog.esy.es/images/eclair-3.png");
    map.put("Android Froyo", "http://androidblog.esy.es/images/froyo-4.png");
    map.put("Android GingerBread", "http://androidblog.esy.es/images/gingerbread-5.png");
    for(String name : map.keySet()){
        TextSliderView textSliderView = new TextSliderView(News.this);
        textSliderView
                .description(name)
                .image(map.get(name))
                .setScaleType(BaseSliderView.ScaleType.Fit)
                .setOnSliderClickListener(this);
        textSliderView.bundle(new Bundle());
        textSliderView.getBundle().putString("extra",name);
        try {
            slide.addSlider(textSliderView); <== Here is where the exception is throwed
        } catch(NullPointerException e){
            System.err.println(e.getLocalizedMessage());
        }

    }

}

所以,我不知道发生了什么,但我所知道的是@id/slider 来自“news_content_activity.xml”并且我调用“news_nav_activity.xml”(包含“news_content_activity.xml”布局在)。所以感谢您的关注和帮助。

更新 1: 就像异常所说的那样,我的变量slidenull;但是现在我仍然没有解决方案

【问题讨论】:

  • 你为什么要扩展NavigationDrawer
  • 因为通过从 NavigationDrawer.class 扩展来使用导航抽屉的唯一方法。
  • 嘿@TazTazzianoTaz427 你能分享news_navigation_activity的xml吗

标签: java android android-layout slider navigation-drawer


【解决方案1】:

但我所知道的是@id/slider 来自“news_content_activity.xml”并且我调用了“news_nav_activity.xml”(that contains "news_content_activity.xml" layout in)

如果你的意思是contains -> 你使用&lt;include&gt;

&lt;include&gt;中指定ID

   <include
    android:id="@+id/test"
    layout="@layout/news_content_activity" />

然后使用两个findViewById 访问布局中的字段

View testView = findViewById(R.id.test);
SliderLayout slide = testView.findViewById(R.id.slider);

【讨论】:

  • 很高兴您提供了帮助,但问题是它没有找到 id,问题是我将 include 更改为 FrameLayout,所以它停止工作。泰
猜你喜欢
  • 1970-01-01
  • 2016-11-13
  • 1970-01-01
  • 2021-03-02
  • 1970-01-01
  • 2018-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多