2015-06-09 49 views
0

正如標題所說,我需要獲取包含在片段活動中的editText的值,它是ViewPager的一部分;到目前爲止,我已經嘗試了所有的東西,並且我已經理解,只需通過在將它放大後傳遞活動的當前視圖即可訪問xml項目,這就是我所做的。但是,我需要包含值在用戶填充後的edittexts中,特別是在按下'save'按鈕之後;在程序執行期間,當我嘗試獲取包含文本時出現此錯誤:「java.lang.NullPointerException:試圖調用虛擬方法'android.text.Editable android.widget.EditText.getText()'on空對象引用」 對不起,愚蠢的問題,我是新來的Android編程,我感謝所有幫助我能 這裏的片段活動代碼:在onCreateView方法之外使用片段活動中的Edittext

public class Monday extends android.support.v4.app.Fragment{ 
EditText[] subjects = new EditText[6]; 
EditText[] classes = new EditText[6]; 

private OnFragmentInteractionListener mListener; 

    public Monday() { 
     // Required empty public constructor 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     ScrollView scrollView = (ScrollView)inflater.inflate(R.layout.fragment_monday, container, false); 
     //some code 

     subjects[0] = (EditText) scrollView.findViewById(R.id.editTextMateria1); 
     subjects[1] = (EditText) scrollView.findViewById(R.id.editTextMateria2); 
     subjects[2] = (EditText) scrollView.findViewById(R.id.editTextMateria3); 
     subjects[3] = (EditText) scrollView.findViewById(R.id.editTextMateria4); 
     subjects[4] = (EditText) scrollView.findViewById(R.id.editTextMateria5); 
     subjects[5] = (EditText) scrollView.findViewById(R.id.editTextMateria6); 


     classes[0] = (EditText) scrollView.findViewById(R.id.editTextClasse1); 
     classes[1] = (EditText) scrollView.findViewById(R.id.editTextClasse2); 
     classes[2] = (EditText) scrollView.findViewById(R.id.editTextClasse3); 
     classes[3] = (EditText) scrollView.findViewById(R.id.editTextClasse4); 
     classes[4] = (EditText) scrollView.findViewById(R.id.editTextClasse5); 
     classes[5] = (EditText) scrollView.findViewById(R.id.editTextClasse6); 
     return scrollView; 
     //return inflater.inflate(R.layout.fragment_monday, container, false); 
    } 

    // TODO: Rename method, update argument and hook method into UI event 
    public void onButtonPressed(Uri uri) { 
     if (mListener != null) { 
      mListener.onFragmentInteraction(uri); 
     } 
    } 

    @Override 
    public void onDetach() { 
     super.onDetach(); 
     mListener = null; 
    } 

    public interface OnFragmentInteractionListener { 
     // TODO: Update argument type and name 
     public void onFragmentInteraction(Uri uri); 
    } 

    public String[] calculateDay(){ 


     String s = ""; 
     for(int i=1;i<subjects.length;i++){ 
      s += subjects[i].getText().toString()+"-"+classes[i].getText().toString()+";"; 
     } 
     String[] monday = new String[6]; 

     monday = s.split(";"); 
     return monday; 

    } 
} 

這就是一部分生成錯誤:

s += subjects[i].getText().toString()+"-"+classes[i].getText().toString()+";"; 

下面是產生ViewPager(在其上按鈕按下保存被處理)的「mainactivity」的代碼:

public class CustomTimetables extends FragmentActivity implements NoticeDialogFragment.NoticeDialogListener{ 

    public static String classname = ""; 
    ViewPager viewPager = null; 

    private MyAdapter2 mAdapter; 

    ViewPager Tab; 
    MyAdapter2 TabAdapter; 
    ActionBar actionBar; 
    PagerSlidingTabStrip tabs; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     getWindow().requestFeature(Window.FEATURE_ACTION_BAR); 
     setContentView(R.layout.activity_custom_timetables); 

     tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs); 
     Tab = (ViewPager) findViewById(R.id.pager); 
     TabAdapter = new MyAdapter2(getSupportFragmentManager()); 

     Tab.setAdapter(TabAdapter); 
     tabs.setViewPager(Tab); 
     Toast.makeText( getApplicationContext(), 
       "Inserisci l'orario nelle caselle, lasciale vuote se le lezioni terminano prima ", 
       Toast.LENGTH_LONG 
     ).show(); 



    } 



    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_custom_timetables, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 

     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 
     if (id == R.id.action_settings) { 
      return true; 
     } 

     return super.onOptionsItemSelected(item); 
    } 


    public void onSaveTimetable(View v){ 
     DialogFragment dialog = new NoticeDialogFragment(); 
     dialog.show(this.getSupportFragmentManager(), "insert_class"); 
    } 

    public void onDialogPositiveClick(DialogFragment dialog) { 
     String timetable = "Orario;Lunedi;Martedi;Mercoledi;Giovedi;Venerdi;Sabato;\n08:00;"; 


     String[] monday = new String[6]; 
     Monday m = new Monday(); 
     monday = m.calculateDay(); 

     for(int i = 0; i<6; i++){ 
      timetable += monday[i]+";"; 



      switch(i){ 
       case 0: timetable +="\n";break; 
       case 1 : timetable +="\n09:00;";break; 
       case 2 : timetable +="\n10:00;";break; 
       case 3 : timetable +="\n11:05;";break; 
       case 4 : timetable +="\n12:00;";break; 
       case 5 : timetable +="\n12:50;";break; 
      } 

     } 

    } 

    @Override 
    public void onDialogNegativeClick(DialogFragment dialog) { 

    } 
} 

class MyAdapter2 extends FragmentStatePagerAdapter 
{ 

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

    @Override 
    public Fragment getItem(int i) { 
     Fragment fragment = null; 
     if(i==0){ 
      fragment = new Monday(); 
     } 
     if(i==1){ 
      fragment = new Tuesday(); 
     } 
     if(i==2){ 
      fragment = new Wednesday(); 
     } 
     if(i==3){ 
      fragment = new Thursday(); 
     } 
     if(i==4){ 
      fragment = new Friday(); 
     } 
     if(i==5){ 
      fragment = new Saturday(); 
     } 
     return fragment; 
    } 

    @Override 
    public int getCount() { 
     return 6; 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 

     if(position == 0){ 
      return "Lunedi"; 
     } 
     if(position == 1){ 
      return "Martedi"; 
     } 
     if(position == 2){ 
      return "Mercoledi"; 
     } 
     if(position == 3){ 
      return "Giovedi"; 
     } 
     if(position == 4){ 
      return "Venerdi"; 
     } 
     if(position == 5){ 
      return "Sabato"; 
     } 
     return null; 
    } 


} 

這裏的logcat的:

06-09 19:29:16.172 24414-24443/com.progettostage.nick__000.timetablesapp D/OpenGLRenderer﹕ Use EGL_SWAP_BEHAVIOR_PRESERVED: true 
06-09 19:29:16.187 24414-24414/com.progettostage.nick__000.timetablesapp D/Atlas﹕ Validating map... 
06-09 19:29:16.250 24414-24443/com.progettostage.nick__000.timetablesapp I/Adreno-EGL﹕ <qeglDrvAPI_eglInitialize:379>: QUALCOMM Build: 01/15/15, ab0075f, Id3510ff6dc 
06-09 19:29:16.252 24414-24443/com.progettostage.nick__000.timetablesapp I/OpenGLRenderer﹕ Initialized EGL, version 1.4 
06-09 19:29:16.290 24414-24443/com.progettostage.nick__000.timetablesapp D/OpenGLRenderer﹕ Enabling debug mode 0 
06-09 19:32:20.725 24414-24443/com.progettostage.nick__000.timetablesapp V/RenderScript﹕ Application requested CPU execution 
06-09 19:32:20.738 24414-24443/com.progettostage.nick__000.timetablesapp V/RenderScript﹕ 0xb83ba0b8 Launching thread(s), CPUs 4 
06-09 19:32:38.415 24414-24414/com.progettostage.nick__000.timetablesapp D/AndroidRuntime﹕ Shutting down VM 
06-09 19:32:38.422 24414-24414/com.progettostage.nick__000.timetablesapp E/AndroidRuntime﹕ FATAL EXCEPTION: main 
    Process: com.progettostage.nick__000.timetablesapp, PID: 24414 
    java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference 
      at com.progettostage.nick__000.timetablesapp.Monday.calculateDay(Monday.java:111) 
      at com.progettostage.nick__000.timetablesapp.CustomTimetables.onDialogPositiveClick(CustomTimetables.java:111) 
      at com.progettostage.nick__000.timetablesapp.NoticeDialogFragment$2.onClick(NoticeDialogFragment.java:33) 
      at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:162) 
      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) 

而這僅僅是類處理對話框,我不認爲這有什麼關係,但有備無患..

public class NoticeDialogFragment extends DialogFragment { 


    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
     // Get the layout inflater 
     LayoutInflater inflater = getActivity().getLayoutInflater(); 
     final View view = inflater.inflate(R.layout.dialog_classinput, null); 
     // Inflate and set the layout for the dialog 
     // Pass null as the parent view because its going in the dialog layout 
     builder.setView(view) 
       // Add action buttons 
       .setTitle("Inserisci nome classe") 
       .setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int id) { 
         EditText et = (EditText)view.findViewById(R.id.classname22); 
         CustomTimetables.classname = et.getText().toString(); 
         // Send the positive button event back to the host activity 
         mListener.onDialogPositiveClick(NoticeDialogFragment.this); 
        } 
       }) 
       .setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         dialog.dismiss(); 
        } 
       }); 
     return builder.create(); 
    } 


    public interface NoticeDialogListener { 
     public void onDialogPositiveClick(DialogFragment dialog); 
     public void onDialogNegativeClick(DialogFragment dialog); 
    } 


    NoticeDialogListener mListener; 


    @Override 
    public void onAttach(Activity activity) { 
     super.onAttach(activity); 
     // Verify that the host activity implements the callback interface 
     try { 
      // Instantiate the NoticeDialogListener so we can send events to the host 
      mListener = (NoticeDialogListener) activity; 
     } catch (ClassCastException e) { 
      // The activity doesn't implement the interface, throw exception 
      throw new ClassCastException(activity.toString() 
        + " must implement NoticeDialogListener"); 
     } 
    } 

} 

這裏的Monday.xml以及(只好剪掉了一些地方到底CAU本質上它是太長,但其實很簡單,它繼續這樣下去直到editTextMateria6和editTextClasse6):

<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 
<RelativeLayout android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    tools:context=".Monday" 

     > 


    <TextView 
     android:gravity="center" 
     android:layout_width="match_parent" 
     android:layout_height="58dp" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="8:00-9:00" 
     android:id="@+id/PrimaOra" 
     android:textSize="25dp" 

     android:layout_gravity="center_horizontal|bottom" 
     android:layout_marginLeft="16dp" 
     android:layout_marginRight="16dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="50dp" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text="Materia" 
     android:id="@+id/materia1" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="115dp" /> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textPersonName" 
     android:ems="10" 
     android:id="@+id/editTextMateria1" 
     android:layout_marginTop="160dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text="Classe" 
     android:id="@+id/classe1" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="225dp" /> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textPersonName" 
     android:text="" 
     android:ems="10" 
     android:id="@+id/editTextClasse1" 
     android:layout_marginTop="270dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" /> 
----------------------------------------------------- 

    <TextView 
     android:gravity="center" 
     android:layout_width="match_parent" 
     android:layout_height="58dp" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="9:00-10:00" 
     android:id="@+id/SecondaOra" 
     android:textSize="25dp" 
     android:layout_gravity="center_horizontal|bottom" 
     android:layout_marginLeft="16dp" 
     android:layout_marginRight="16dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="325dp" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text="Materia" 
     android:id="@+id/materia2" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="390dp" /> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textPersonName" 
     android:text="" 
     android:ems="10" 
     android:id="@+id/editTextMateria2" 
     android:layout_marginTop="435dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" /> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text="Classe" 
     android:id="@+id/classe2" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="500dp" /> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textPersonName" 
     android:text="" 
     android:ems="10" 
     android:id="@+id/editTextClasse2" 
     android:layout_marginTop="545dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true"/> 
     ----------------------------------------- 

    <TextView 
     android:gravity="center" 
     android:layout_width="match_parent" 
     android:layout_height="58dp" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="10:00-10:50" 
     android:id="@+id/TerzaOra" 
     android:textSize="25dp" 
     android:layout_gravity="center_horizontal|bottom" 
     android:layout_marginLeft="16dp" 
     android:layout_marginRight="16dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="600dp" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text="Materia" 
     android:id="@+id/materia3" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="665dp" /> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textPersonName" 
     android:text="" 
     android:ems="10" 
     android:id="@+id/editTextMateria3" 
     android:layout_marginTop="710dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" /> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text="Classe" 
     android:id="@+id/classe3" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="775dp" /> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textPersonName" 
     android:text="" 
     android:ems="10" 
     android:id="@+id/editTextClasse3" 
     android:layout_marginTop="825dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true"/> 
    ----------------------------------------- 
    <TextView 
     android:gravity="center" 
     android:layout_width="match_parent" 
     android:layout_height="58dp" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="11:05-12:00" 
     android:id="@+id/QuartaOra" 
     android:textSize="25dp" 
     android:layout_gravity="center_horizontal|bottom" 
     android:layout_marginLeft="16dp" 
     android:layout_marginRight="16dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="875dp" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text="Materia" 
     android:id="@+id/materia4" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="940dp" /> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textPersonName" 
     android:text="" 
     android:ems="10" 
     android:id="@+id/editTextMateria4" 
     android:layout_marginTop="985dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" /> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text="Classe" 
     android:id="@+id/classe4" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="1050dp" /> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textPersonName" 
     android:text="" 
     android:ems="10" 
     android:id="@+id/editTextClasse4" 
     android:layout_marginTop="1095dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true"/> 
    ------------------------------------------------ 
    <TextView 
     android:gravity="center" 
     android:layout_width="match_parent" 
     android:layout_height="58dp" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="12:00-12:50" 
     android:id="@+id/QuintaOra" 
     android:textSize="25dp" 
     android:layout_gravity="center_horizontal|bottom" 
     android:layout_marginLeft="16dp" 
     android:layout_marginRight="16dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="1150dp" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text="Materia" 
     android:id="@+id/materia5" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="1215dp" /> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textPersonName" 
     android:text="" 
     android:ems="10" 
     android:id="@+id/editTextMateria5" 
     android:layout_marginTop="1260dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" /> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text="Classe" 
     android:id="@+id/classe5" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="1325dp" /> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:inputType="textPersonName" 
     android:text="" 
     android:ems="10" 
     android:id="@+id/editTextClasse5" 
     android:layout_marginTop="1380dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true"/> 
    ---------------------------------------------- 
    <TextView 
     android:gravity="center" 
     android:layout_width="match_parent" 
     android:layout_height="58dp" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="12:50-13:40" 
     android:id="@+id/SestaOra" 
     android:textSize="25dp" 
     android:layout_gravity="center_horizontal|bottom" 
     android:layout_marginLeft="16dp" 
     android:layout_marginRight="16dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="1435dp" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text="Materia" 
     android:id="@+id/materia6" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="1500dp" /> 



    <Button 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:width="400dp" 
     android:height="70dp" 
     android:onClick="onSaveTimetable" 
     android:text="Salva" 
     android:layout_marginTop="1700dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     /> 


</RelativeLayout> 
</ScrollView> 

UPDATE 好吧,我已經添加了幾行,所以也許這是更清楚是什麼問題..

String sub1 = subjects[0].getText().toString(); 
      String classr1 = classes[0].getText().toString(); 
      for(int i=0;i<subjects.length;i++){ 
       s += subjects[i].getText().toString()+"-"+classes[i].getText().toString()+";"; 
      } 

如果我將它設置這樣的,我得到同樣的確切的錯誤就在SUB1線,因爲在這樣一個方法,我不能夠通過視圖或膨脹,正如我做oncreateview,它工作得很好,無論我做什麼操作..問題是我需要這些edittext後,用戶有pu t裏面有些東西..我希望我已經更清楚一點,我感謝所有我仍然得到的幫助,我想指出,我已經嘗試過每一個解決方案,即使我沒有,回覆這封他們都

+0

也許爲了完整性發布您的XML爲R.layout.fragment_monday。 –

+0

但是,錯誤是當您的EditText對象被引用爲空時得到的錯誤,因此您要求它的位置(週一類內部,未張貼我看不到),您可能引用了一個變量或者沒有用你認爲是的值填充的數組。 –

+0

我已添加星期一佈局,星期一班是我發佈的第一個班級 – D4nt3

回答

0

這是錯誤的用法:

Monday m = new Monday(); 
monday = m.calculateDay(); 

試試這個:

Monday m = mAdapter.getItem(viewPager.getCurrentItem()); 
monday = m.calculateDay(); 
+0

好吧,我試過了,但我不認爲它有效..我得到另一個錯誤,我被迫將它轉換爲星期一m =(星期一)mAdapter ... java.lang.NullPointerException:嘗試在空對象引用 上調用虛擬方法'int android.support.v4.view.ViewPager.getCurrentItem()'這是錯誤,但無論如何,我認爲有一種方法可以在課堂中使用edittext,但在其外部onCreateView ..我不知道如果我應該期待calculateDay的調用,因爲它可能是多麼錯誤,它看起來像它的工作,直到該行.. – D4nt3

1

數組索引從0開始。請確保訪問陣列時使用正確的索引值。

+0

是的,這是真的,但那不是我錯誤尋找..無論如何謝謝 – D4nt3

+1

是的,這是你正在尋找的答案... – EpicPandaForce

0

你也許可以嘗試使用:

getSupportFragmentManager().findFragmentById 

得到已經開始的星期一片段的握在onDialogPositiveClick。然後你可以使用這個片段來調用calculateDay方法。可以在xml文件中爲片段設置一個id。您當前的實現創建實例並調用calculateDay不正確。

在你的Activity的xml佈局中,假設你已經添加了片段標籤,添加一個id屬性。然後在你的onDialogPositiveClick,叫

Monday monday = (Monday) getSupportFragmentManager(). 
    findFragmentById("that fragment id here"); 

現在,使用這個變量週一援引calculateDay方法。

一些官方文檔:http://developer.android.com/training/basics/fragments/communicating.html#Deliver

+0

你能更具體一點..?正如我所說,我真的很抱歉,但我有點新的.. – D4nt3

+0

試過這種方式,但它試圖運行calculateDay時返回一個錯誤,所以它甚至沒有這樣的方法進入內部......「 java.lang.NullPointerException:嘗試調用虛擬方法'java.lang.String [] com.progettostage.nick__000.timetablesapp.Monday.calculateDay()'在空對象引用「 – D4nt3

0

已經講過,但我再說一遍。

for(int i=1;i<7;i++){ 
     s += subjects[i].getText().toString()+"-"+classes[i].getText().toString()+";"; 

應該

for(int i = 0; i < subjects.length; i++){ 
     s += subjects[i].getText().toString()+"-"+classes[i].getText().toString()+";"; 

編輯:說實話,我只寫了這樣的代碼,而不是

public enum Days { 
    MONDAY("Lunedi") { //should be string resource 
     public Fragment createFragment() { 
      return new Monday(); 
     } 
    }, 
    TUESDAY("Martedi") { 
     public Fragment createFragment() { 
      return new Tuesday(); 
     } 
    }, 
    WEDNESDAY("Mercoledi") { 
     public Fragment createFragment() { 
      return new Wednesday(); 
     } 
    }, 
    THURSDAY("Giovedi") { 
     public Fragment createFragment() { 
      return new Thursday(); 
     } 
    }, 
    FRIDAY("Venerdi") { 
     public Fragment createFragment() { 
      return new Friday(); 
     } 
    }, 
    SATURDAY("Sabato") { 
     public Fragment createFragment() { 
      return new Saturday(); 
     } 
    }; 

    private String name; 

    private Days(String name) { 
     this.name = name; 
    } 

    public String getName() { return name; } 

    public abstract Fragment createFragment(); 
} 

class MyAdapter2 extends FragmentStatePagerAdapter 
{ 

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

    @Override 
    public Fragment getItem(int i) { 
     Fragment fragment = null; 
     Days[] days = Days.values(); 
     if(i < days.length) { 
      fragment = days[i].createFragment(); 
     } 
     return fragment; 
    } 

    @Override 
    public int getCount() { 
     return Days.values().length; 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     Days[] days = Days.values(); 
     if(position < days.length) { 
      return days[position].getName(); 
     } else { 
      return null; 
     } 
    }  
} 

而且是公平的,也是最重要的,科目[5] =(EditText)scrollView.findViewById(R.id.editTextMateria6);爲空,因爲editTextMateria6不存在於fragment_monday.xml中,editTextClasse6也不存在。

+0

Ehm no,也許我說錯了,我這意味着這肯定是一個錯誤,我解決它(謝謝),但它不是我正在尋找的錯誤,即使在此更改後,我也會在同一行上收到同樣的錯誤.. – D4nt3

+0

kkkkkkkkkkkkkk。 – EpicPandaForce

相關問題