【问题标题】:How to open an Image from on Itemclick listener如何从 Itemclick 侦听器打开图像
【发布时间】:2016-08-21 05:00:57
【问题描述】:

当我的GridView 中的元素被点击时,我试图调用一个活动 它将在滑动活动中打开,并显示相应的图像,但我在设置时遇到错误 作为

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.union.project, PID: 2194
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.union.project/com.union.project.Swipeview.Main4Activity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.view.ViewPager.setAdapter(android.support.v4.view.PagerAdapter)' on a null object reference
 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
 at android.app.ActivityThread.access$800(ActivityThread.java:151)
 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
 at android.os.Handler.dispatchMessage(Handler.java:102)
 at android.os.Looper.loop(Looper.java:135)
 at android.app.ActivityThread.main(ActivityThread.java:5254)
 at java.lang.reflect.Method.invoke(Native Method)
 at java.lang.reflect.Method.invoke(Method.java:372)
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.view.ViewPager.setAdapter(android.support.v4.view.PagerAdapter)' on a null object reference
 at com.union.project.Swipeview.Main4Activity.onCreate(Main4Activity.java:26)
 at android.app.Activity.performCreate(Activity.java:5990)
 at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
 at android.app.ActivityThread.access$800(ActivityThread.java:151) 
 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
 at android.os.Handler.dispatchMessage(Handler.java:102) 
 at android.os.Looper.loop(Looper.java:135) 
 at android.app.ActivityThread.main(ActivityThread.java:5254) 
 at java.lang.reflect.Method.invoke(Native Method) 
 at java.lang.reflect.Method.invoke(Method.java:372) 
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
 04-27 01:17:54.025 2194-2194/com.union.project I/Process: S

这是我在单击任何显示 toast 的项目时遇到的错误,但随后我的片段代码崩溃了

 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view= inflater.inflate(R.layout.fragment_two, container, false);
    GridView gridView=(GridView)view.findViewById(R.id.gridView2);
    gridView.setAdapter(new UAdapter(getActivity()));
    gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Toast.makeText(getActivity(),"Pic"+(position)+"Selected",Toast.LENGTH_SHORT).show();
            Intent intent= new Intent(view.getContext(),Main4Activity.class);
            intent.putExtra("pic",position);
            startActivity(intent);
        }
    });
    return view;
}

我的滑动视图代码`

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main4);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    viewPager =(ViewPager)findViewById(R.id.viewpager1);
    adapter =new CustomeSwipeAdapter2(this);
    viewPager.setAdapter(adapter);
    viewPager.setCurrentItem(getIntent().getIntExtra("pic", 0));
}`

这是我想要开始的活动,但如果遇到错误,有人可以告诉我如何解决这个问题。

【问题讨论】:

  • 阅读您的堆栈跟踪 - android.util.AndroidRuntimeException: requestFeature() must be called before adding content
  • 正如你所说,我已经改变了,但我仍然遇到错误,请参阅编辑后的错误
  • 谢谢大家解决了问题,这是我在滑动视图中的错误我设置了不同按钮和图像视图的 id 以寻求帮助

标签: android android-studio android-activity onitemclicklistener


【解决方案1】:

你的错误本身就可以回答你的问题。

requestFeature() must be called before adding content

这意味着您的第二个 Activity 需要此更改

requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main4);

requestWindowFeature() 必须在setContentView() 之前

更新问题后

现在你的错误是

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.view.ViewPager.setAdapter(android.support.v4.view.PagerAdapter)' on a null object reference

你需要检查这个What is a Null Pointer Exception, and how do I fix it?

【讨论】:

    【解决方案2】:

    像下面这样打电话给requestWindowFeature

    @Override
    public void onCreate(Bundle savedInstanceState) {
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mainmenu);
    }
    

    【讨论】:

      【解决方案3】:

      如上所述,您需要调用 requestWindowFeature(Window.FEATURE_NO_TITLE);在 setContentView 方法之前。

      【讨论】:

      • 我删除了窗口功能然后我也收到错误?
      • super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.mainmenu);
      • 或者,您也可以在清单文件android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 的活动标签中尝试此操作
      【解决方案4】:

      问题出在这几行

      viewPager =(ViewPager)findViewById(R.id.viewpager1);
      adapter =new CustomeSwipeAdapter2(this);
      viewPager.setAdapter(adapter);
      viewPager.setCurrentItem(getIntent().getIntExtra("pic", 0));
      

      首先:检查您的 activity_main4 xml 中是否有 ID 为 viewpager1 的 ViewPager 布局

      第二:如何将图像传递给适配器?!有链接还是你自己通过drawable?!你不会将任何东西传递给你的适配器!!!!!!!!!!!!!

      第三:当你的适配器为空时,你不能使用viewPager.setCurrentItem(getIntent().getIntExtra("pic", 0)); 就在上面

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-16
        • 1970-01-01
        • 2021-09-08
        相关资源
        最近更新 更多