带有片段的Viewpager创建一个java.lang.RuntimeException

用户名

我试图用片段创建一个Viewpager。

我有4个与我的问题有关的活动。

这是第一个活动(Viewpageractivity是第二个活动):

package com.exple.v1;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

public class MovieActionGenreActivity extends ActionBarActivity {

    LayoutInflater inflater;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);



        populateListView();
        registerClickCallback();

    }
    private void registerClickCallback() {

        ListView list = (ListView)findViewById(R.id.listView1);

        list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {

                Intent intent;
                switch(position)
                {

                case 1:
                    intent = new Intent(MovieActionGenreActivity.this,ViewpagerActivity.class);
                    startActivity(intent);
                    break;
                case 2:
                    intent = new Intent(MovieActionGenreActivity.this,MovieAnimationGenreActivity.class);
                    startActivity(intent);
                    break;
                case 3:
                    intent = new Intent(MovieActionGenreActivity.this,MovieComedyGenreActivity.class);
                    startActivity(intent);
                    break;
                case 4:
                    intent = new Intent(MovieActionGenreActivity.this,MovieDocumentaryGenreActivity.class);
                    startActivity(intent);
                    break;
                case 5:
                    intent = new Intent(MovieActionGenreActivity.this,MovieHorrorGenreActivity.class);
                    startActivity(intent);
                    break;
                case 6:
                    intent = new Intent(MovieActionGenreActivity.this,MovieDramaGenreActivity.class);
                    startActivity(intent);
                    break;
                default:
                    break;
                }
            }
        });

    }

    private void populateListView() {



        String[] textz = {"Komedi","Äventyr","Western","Drama","Thriller","Fantasy"};
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.the_list, textz);
        ListView listView = (ListView)findViewById(R.id.listView1);
        listView.setAdapter(adapter);

        inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View header = inflater.inflate(R.layout.header_movies_maingenres,null);
        listView.addHeaderView(header,null,false);
        TextView txt = (TextView)findViewById(R.id.textView1);
        txt.setText("Huvudgenrer:Action");
        TextView txt2 = (TextView)findViewById(R.id.textView2);
        txt2.setText("Välj en genre inom Action");


    }

}

此活动显示带有标题的列表视图,只有通过列表中的第一个对象,您才能访问我的viewpager。(我故意这样做只是为了首先进行测试)

这是我的Viewpageractivity:

package com.exple.v1;

import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBarActivity;

public class ViewpagerActivity extends ActionBarActivity {

    ViewPager pager;
    ViewpagerAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        pager = (ViewPager)findViewById(R.id.viewpager);
        adapter = new ViewpagerAdapter(getSupportFragmentManager());
        pager.setAdapter(adapter);

    }



}

剩下的两个活动是Viewpageradapter,它是我的viewpager的适配器,最后一个是称为ViewpagerFragment的片段。

这是我的适配器语法:

package com.exple.v1;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;

public class ViewpagerAdapter extends FragmentStatePagerAdapter{

    int[] image = {};


    public ViewpagerAdapter(FragmentManager fm)
    {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        // TODO Auto-generated method stub
        return new ViewpagerFragment();
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return 5;
    }

}

这是我的片段类:

package com.exple.v1;

import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class ViewpagerFragment extends Fragment{


    public ViewpagerFragment()
    {


    }


    public View onCreateView(LayoutInflater inflater,ViewGroup container,
            Bundle savedInstanceState)
    {
        View rootView = inflater.inflate(R.layout.viewpager_item,
                container, false);
        return rootView;
    }
}

并且由于某种原因,出现了一条错误消息。这是logcat的全部错误:

05-02 09:05:51.580: E/AndroidRuntime(32031): FATAL EXCEPTION: main
05-02 09:05:51.580: E/AndroidRuntime(32031): Process: com.exple.v1, PID: 32031
05-02 09:05:51.580: E/AndroidRuntime(32031): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.exple.v1/com.exple.v1.ViewpagerActivity}: java.lang.NullPointerException
05-02 09:05:51.580: E/AndroidRuntime(32031):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2305)
05-02 09:05:51.580: E/AndroidRuntime(32031):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2363)
05-02 09:05:51.580: E/AndroidRuntime(32031):    at android.app.ActivityThread.access$900(ActivityThread.java:161)
05-02 09:05:51.580: E/AndroidRuntime(32031):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1265)
05-02 09:05:51.580: E/AndroidRuntime(32031):    at android.os.Handler.dispatchMessage(Handler.java:102)
05-02 09:05:51.580: E/AndroidRuntime(32031):    at android.os.Looper.loop(Looper.java:157)
05-02 09:05:51.580: E/AndroidRuntime(32031):    at android.app.ActivityThread.main(ActivityThread.java:5356)
05-02 09:05:51.580: E/AndroidRuntime(32031):    at java.lang.reflect.Method.invokeNative(Native Method)
05-02 09:05:51.580: E/AndroidRuntime(32031):    at java.lang.reflect.Method.invoke(Method.java:515)
05-02 09:05:51.580: E/AndroidRuntime(32031):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
05-02 09:05:51.580: E/AndroidRuntime(32031):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
05-02 09:05:51.580: E/AndroidRuntime(32031):    at dalvik.system.NativeStart.main(Native Method)
05-02 09:05:51.580: E/AndroidRuntime(32031): Caused by: java.lang.NullPointerException
05-02 09:05:51.580: E/AndroidRuntime(32031):    at com.exple.v1.ViewpagerActivity.onCreate(ViewpagerActivity.java:19)
05-02 09:05:51.580: E/AndroidRuntime(32031):    at android.app.Activity.performCreate(Activity.java:5426)
05-02 09:05:51.580: E/AndroidRuntime(32031):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
05-02 09:05:51.580: E/AndroidRuntime(32031):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2269)
05-02 09:05:51.580: E/AndroidRuntime(32031):    ... 11 more

按照我的解释,我应该得到一个viewpager,该页面应该向我显示5个浏览页面(如果您想知道为什么只有5个,请参阅适配器)

我做错了什么?

马蒂亚·梅斯特里尼(Mattia Maestrini)

ViewpagerActivity您使用不带的不正确布局的情况下ViewPager,因此,寻呼机为null并收到NullPointerException

onCreate方法更改ViewpagerActivity为此:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.viewpagers);

    pager = (ViewPager)findViewById(R.id.viewpager);
    adapter = new ViewpagerAdapter(getSupportFragmentManager());
    pager.setAdapter(adapter);

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

java.lang.RuntimeException:IllegalAccessException

来自分类Dev

相机java.lang.RuntimeException:setParameters失败

来自分类Dev

java.lang.RuntimeException:takePicture失败

来自分类Dev

在Xamarin上调试Java.Lang.RuntimeException

来自分类Dev

SolrIndexerJob:java.lang.RuntimeException:作业失败:

来自分类Dev

java.lang.RuntimeException:启动失败

来自分类Dev

java.lang.RuntimeException:setAudioSource失败

来自分类Dev

SolrIndexerJob: java.lang.RuntimeException: job failed:

来自分类Dev

的Android [的LocationManager] requestLocationUpdates(),了java.lang.RuntimeException

来自分类Dev

无法启动Activity java.lang.RuntimeException

来自分类Dev

java.lang.RuntimeException:启动失败

来自分类Dev

java.lang.RuntimeException:无法启动活动

来自分类Dev

Android PreferenceFragment:java.lang.RuntimeException

来自分类Dev

Maven构建错误java.lang.RuntimeException

来自分类Dev

java.lang.RuntimeException:setAudioSource失败

来自分类Dev

Java.Lang.RuntimeException无法启动Activity

来自分类Dev

Android Boilepipe-java.lang.RuntimeException

来自分类Dev

java.lang.RuntimeException:无法启动活动

来自分类Dev

java.lang.RuntimeException:方法代码太大

来自分类Dev

java.lang.RuntimeException:缺少类型参数

来自分类Dev

java.lang.RuntimeException:java.lang.NoSuchMethodException:Hadoop mapreduce

来自分类Dev

Roboelectric java.lang.RuntimeException:java.lang.reflect.InvocationTargetException

来自分类Dev

java.lang.RuntimeException:java.lang.NoSuchMethodException:Hadoop mapreduce

来自分类Dev

如何解决Android中的此错误-java.lang.RuntimeException:每个线程只能创建一个Looper

来自分类Dev

java.lang.RuntimeException:无法启动活动,传递给另一个活动

来自分类Dev

java.lang.RuntimeException:未知的动画名称:objectAnimator

来自分类Dev

java.lang.RuntimeException:在release()之后调用的方法

来自分类Dev

拍照失败java.lang.runtimeexception无法启动意图的服务

来自分类Dev

nokiax reports java.lang.RuntimeException: native typeface cannot be made

Related 相关文章

  1. 1

    java.lang.RuntimeException:IllegalAccessException

  2. 2

    相机java.lang.RuntimeException:setParameters失败

  3. 3

    java.lang.RuntimeException:takePicture失败

  4. 4

    在Xamarin上调试Java.Lang.RuntimeException

  5. 5

    SolrIndexerJob:java.lang.RuntimeException:作业失败:

  6. 6

    java.lang.RuntimeException:启动失败

  7. 7

    java.lang.RuntimeException:setAudioSource失败

  8. 8

    SolrIndexerJob: java.lang.RuntimeException: job failed:

  9. 9

    的Android [的LocationManager] requestLocationUpdates(),了java.lang.RuntimeException

  10. 10

    无法启动Activity java.lang.RuntimeException

  11. 11

    java.lang.RuntimeException:启动失败

  12. 12

    java.lang.RuntimeException:无法启动活动

  13. 13

    Android PreferenceFragment:java.lang.RuntimeException

  14. 14

    Maven构建错误java.lang.RuntimeException

  15. 15

    java.lang.RuntimeException:setAudioSource失败

  16. 16

    Java.Lang.RuntimeException无法启动Activity

  17. 17

    Android Boilepipe-java.lang.RuntimeException

  18. 18

    java.lang.RuntimeException:无法启动活动

  19. 19

    java.lang.RuntimeException:方法代码太大

  20. 20

    java.lang.RuntimeException:缺少类型参数

  21. 21

    java.lang.RuntimeException:java.lang.NoSuchMethodException:Hadoop mapreduce

  22. 22

    Roboelectric java.lang.RuntimeException:java.lang.reflect.InvocationTargetException

  23. 23

    java.lang.RuntimeException:java.lang.NoSuchMethodException:Hadoop mapreduce

  24. 24

    如何解决Android中的此错误-java.lang.RuntimeException:每个线程只能创建一个Looper

  25. 25

    java.lang.RuntimeException:无法启动活动,传递给另一个活动

  26. 26

    java.lang.RuntimeException:未知的动画名称:objectAnimator

  27. 27

    java.lang.RuntimeException:在release()之后调用的方法

  28. 28

    拍照失败java.lang.runtimeexception无法启动意图的服务

  29. 29

    nokiax reports java.lang.RuntimeException: native typeface cannot be made

热门标签

归档