2016-12-22 8 views
-1

Я работаю над View Flipper в android. при компиляции он не показывает никаких ошибок. но как только приложение запускается в моих мобильных устройствах, он выходит из строя. Так как я очень новичок в Android и у меня недостаточно знаний. Сообщить о ошибке показывает Исключение нулевого указателя для вызова viewFlipper.getDisplayChild() Основные коды Java файловПриложение сбой, добавив ViewFlipper/Show Null Object Refrence

package com.example.joshiyogesh.classapplication; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.MotionEvent; 
import android.widget.ViewFlipper; 

public class MainActivity extends Activity { 

    public ViewFlipper viewFlipper; 
    public float lastX; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     viewFlipper = (ViewFlipper)findViewById(R.id.view_flipper); 
    } 


    public boolean onTouchEvent(MotionEvent touchEvent){ 


     switch (touchEvent.getAction()){ 
      case MotionEvent.ACTION_DOWN: 
      { 
       lastX = touchEvent.getX(); 
       break; 
      } 
      case MotionEvent.ACTION_UP: 
      { 
       float currentX = touchEvent.getX(); 

       if (lastX<currentX){ 
        if(viewFlipper.getDisplayedChild() == 0) 
         break; 
        viewFlipper.setInAnimation(this,R.anim.in_from_left); 
        viewFlipper.setOutAnimation(this,R.anim.out_from_right); 
     //show next Screen 
        viewFlipper.showNext(); 
       } 
       if(lastX>currentX){ 
        if(viewFlipper.getDisplayedChild()==1) 
         break; 
        viewFlipper.setInAnimation(this,R.anim.in_from_right); 
        viewFlipper.setOutAnimation(this,R.anim.out_from_left); 
        viewFlipper.showPrevious(); 
       } 

       break; 
      } 
     } 


     return false; 
    } 
} 

коды файлов ViewFlipper являются

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <ViewFlipper 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/view_flipper" 
     android:layout_margin="6dip"> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:gravity="center" 
      android:orientation="vertical" 
      > 
    <ImageView 
    android:layout_width="450dp" 
    android:layout_height="450dp" 
    android:layout_marginTop="15dp" 
    android:id="@+id/image_view1" 
    android:src="@drawable/images"/> 
     </LinearLayout> 



    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:gravity="center" 
     android:orientation="vertical" 
     > 
     <ImageView 
      android:layout_width="450dp" 
      android:layout_height="450dp" 
      android:layout_marginTop="15dp" 
      android:id="@+id/image_view2" 
      android:src="@drawable/large"/> 
    </LinearLayout> 




    </ViewFlipper> 
</LinearLayout> 

Любая помощь будет Thankful.Thanks заранее.

обновление Report Bug shown by devices

+0

При вызове метода onTouchEvent? – Nithinlal

+0

опубликуйте logcat – Redman

+0

@ Нитинлал, когда я вызываю метод onTouchEvent, тогда приложение выдает –

ответ

0

При использовании onTouchEvent деятельность будет посылать непосредственно к нему, если никакие другие функции не вызывать его первым (ontouch слушатель OnClick слушателя), то есть два варианта

Вариант 1

Проверить, есть ли viewFlipper перед использованием

Вариант 2 Использование ontouchlistener в OnCreate после findviewbyid к плавника

viewFlipper.setOnTouchListener(new OnTouchListener() { 
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     if(event.getAction() == MotionEvent.ACTION_UP){ 

     // Do what you want 
      return true; 
     } 
     return false; 
    } 
}); 

 Смежные вопросы

  • Нет связанных вопросов^_^