2015-02-09 3 views
0

меня MainActivity, что называют фрагмент, класс фрагмент вызова:Выполнение действий внутри фрагмента

public class Main extends Fragment{ 

    //public Main(){} 
    Button btn; 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

     final View rootView = inflater.inflate(R.layout.main, container, false); 
     try{ 
      btn = (Button) rootView.findViewById(R.id.button1); 
      btn.setOnClickListener(new OnClickListener(){ 
       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        TextView tx = (TextView)rootView.findViewById(R.id.TextView04); 
        tx.setText("hello World"); 
       } 

      }); 
     }catch(Exception e){ 

     } 
     // View rootView = inflater.inflate(R.layout.main, container, false); 
     return rootView; 
    }  

} 

моя проблема, я не в состоянии сделать некоторую активность внутри этого фрагмента. , чтобы узнать, как я могу выполнить некоторую активность внутри этого фрагмента. Я добавляю TextView и кнопку, которая будет менять текст TextView на «Hello World» при нажатии кнопки. теперь я пытаюсь запустить приложение, все прекрасно, но после нажатия кнопки я получаю сообщение об ошибке: «К сожалению, приложение остановилось». Я не знаю, почему я получаю ошибку, как это, я новичок в разработке android пожалуйста, помогите и пожалуйста, объясните все, что вы добавите.

Here is the Log Cat Error: 

02-09 20:33:30.765: E/AndroidRuntime(13596): FATAL EXCEPTION: main 
02-09 20:33:30.765: E/AndroidRuntime(13596): java.lang.NullPointerException 
02-09 20:33:30.765: E/AndroidRuntime(13596): at info.androidhive.slidingmenu.Main$1.onClick(Main.java:29) 
02-09 20:33:30.765: E/AndroidRuntime(13596): at android.view.View.performClick(View.java:4212) 
02-09 20:33:30.765: E/AndroidRuntime(13596): at android.view.View$PerformClick.run(View.java:17476) 
02-09 20:33:30.765: E/AndroidRuntime(13596): at android.os.Handler.handleCallback(Handler.java:800) 
02-09 20:33:30.765: E/AndroidRuntime(13596): at android.os.Handler.dispatchMessage(Handler.java:100) 
02-09 20:33:30.765: E/AndroidRuntime(13596): at android.os.Looper.loop(Looper.java:194) 
02-09 20:33:30.765: E/AndroidRuntime(13596): at android.app.ActivityThread.main(ActivityThread.java:5371) 
02-09 20:33:30.765: E/AndroidRuntime(13596): at java.lang.reflect.Method.invokeNative(Native Method) 
02-09 20:33:30.765: E/AndroidRuntime(13596): at java.lang.reflect.Method.invoke(Method.java:525) 
02-09 20:33:30.765: E/AndroidRuntime(13596): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833) 
02-09 20:33:30.765: E/AndroidRuntime(13596): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 
02-09 20:33:30.765: E/AndroidRuntime(13596): at dalvik.system.NativeStart.main(Native Method) 
+0

Опубликовать полную трассировку стека ошибок, чтобы получить лучшую помощь –

+1

Не могли бы вы поместить трассировку ошибки, которую вы получили в логарифме, пожалуйста? Не могли бы вы также разместить содержимое файла xml R.layout.main, которое могло бы помочь. –

+1

Поместите здесь свой код файла XML. – sUndeep

ответ

0

Во-первых, Nothings неправильно в вашем коде, что когда-либо знаете по вашему коду, вы просто забыли немного. основываясь на ошибке log-cat, что-то не так с вашим идентификатором textView, поэтому измените свой id на другой идентификатор из вашего main.xml и затем запишите его в свой код, затем попробуйте запустить его. и одна вещь, попробуйте удалить исключение try catch, оно бесполезно. вот вывод для вашего кода.

public class Main extends Fragment{ 
    Button btn; 
    TextView tx; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     final View rootView = inflater.inflate(R.layout.main, container, false); 
     btn = (Button) rootView.findViewById(R.id.button1); 
     tx = (TextView)rootView.findViewById(R.id.newID); //Change your textView ID into different ID 
     btn.setOnClickListener(new OnClickListener(){ 
      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       tx.setText("hello World"); 
      } 
     }); 
     return rootView; 
     } 

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