2015-07-24 2 views
0

Я получаю исключение нулевого указателя во время выполнения. Я попытался вызвать метод интерфейса из другого действия, нажав кнопку изображения.Исключительное исключение указателя на кнопку изображения

Я упомянул об ошибке и разместил соответствующий код.

StackTrace:

07-24 04:42:38.962 4414-4414/com.ms.ha E/AndroidRuntime﹕ FATAL EXCEPTION: main 
    java.lang.NullPointerException 
      at com.ms.ha.activity.GridActivity3.onClick(GridActivity3.java:62) 
      at android.view.View.performClick(View.java:4240) 
      at android.view.View$PerformClick.run(View.java:17721) 
      at android.os.Handler.handleCallback(Handler.java:730) 
      at android.os.Handler.dispatchMessage(Handler.java:92) 
      at android.os.Looper.loop(Looper.java:137) 
      at android.app.ActivityThread.main(ActivityThread.java:5103) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:525) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
      at dalvik.system.NativeStart.main(Native Method) 

LayoutActivity.java:

public class LayoutActivity extends Activity implements OnClickListener { 

ImageButton btn_click; 

private static ItemSelectedListener mListener=null; 

public static void register(ItemSelectedListener listener){ 
    mListener = listener; 
} 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_grid3); 

     btn_click = (ImageButton) findViewById(R.id.btn_click); 

     btn_click.setOnClickListener(this); 
    } 
    @Override 
    public void onClick(View v) { 

     switch (v.getId()) { 

      case R.id.btn_click: 


      if(mListener!=null){ 

       mListener.onItemSelected(0, "Home Details"); 

      }else{ 
       mListener.onItemSelected(1, "List Details"); --->62nd line 

      } 
      break; 
     } 
    } 

} 

ItemSelectedListener

public interface ItemSelectedListener { 

    public void onItemSelected(final int position, final String content); 
} 

MainActivity.java:

public class MainActivity extends ActionBarActivity implements OnTabChangeListener,ItemSelectedListener { 

private TextView action_bar_hometext; 


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

} 

@Override 
    public void onItemSelected(int position, String content) 
    { 

     if(position==0) 
     { 
      action_bar_hometext.setText(content); 
      FragmentManager manager = getSupportFragmentManager(); 
      FragmentTransaction ft = manager.beginTransaction(); 
      HomeFirstFragment newFragment = new HomeFirstFragment(); 
      ft.replace(R.id.realtabcontent, newFragment); 
      ft.addToBackStack(null); 
      ft.commit(); 
     } 
    } 

Если я нажимаю btn_click в классе LayoutActivity, мне нужно выполнить OnClick для вызова метода интерфейса из MainActivity.But, к сожалению, я получил сообщение об ошибке во время выполнения.

Я не знаю, как решить эту проблему. Любой может помочь мне с этим. Спасибо.

+0

вы не вызываете зарегистрироваться для слушателя – eddykordo

+0

показать код 'GridActivity3' –

+0

sorry gridactivity3 = layoutactivity @ AnandSingh.I не могу отредактировать свой собственный пост, потому что это приводит к отправке ошибки. – Steve

ответ

0
if(mListener!=null){ 
     mListener.onItemSelected(0, "Home Details"); 
}else{ 
     mListener.onItemSelected(1, "List Details"); --->62nd line 
} 

если слушатель не нулевой вызове какой-либо метод на него иначе вы пытаетесь вызвать какой-либо метод на нулевой ссылки

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