2014-09-03 124 views
0

這是我的代碼出現錯誤。 我認爲每個公司確定,但我不知道哪裏出了錯誤 這是我的代碼:微調框中的空指針setadapter

public class MainActivity extends Activity implements OnItemSelectedListener{ 
private EditText promAcum; 
private EditText credCur; 
private EditText sem; 
private EditText num_examenes; 
private EditText editText13; 
private EditText editText14; 
private EditText editText15; 
private EditText editText16; 
private EditText editText17; 
private EditText editText18; 
private EditText editText19; 
private EditText editText20; 
private EditText editText21; 
private Spinner spinner1; 
public String valorPromAcum; 
public String valorCredCur; 
public String valorSem; 
public String[] numeroExamenes={"3","4","5","6"}; 
private final static String TAG_FRAGMENT = "TAG_FRAGMENT"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    FragmentManager fm = getFragmentManager(); 
    Fragment fragment = fm.findFragmentById(R.id.fragment_content); 

    if (fragment == null) { 
     FragmentTransaction ft = fm.beginTransaction(); 
     ft.add(R.id.fragment_content, new MainFragment()); 
     ft.commit(); 
    } 

    promAcum = (EditText) findViewById(R.id.promAcum); 
    credCur = (EditText) findViewById(R.id.credCur); 
    sem = (EditText) findViewById(R.id.sem); 
    editText13 = (EditText)findViewById(R.id.editText13); 
    editText14 = (EditText)findViewById(R.id.editText14); 
    editText15 = (EditText)findViewById(R.id.editText15); 
    editText16 = (EditText)findViewById(R.id.editText16); 
    editText17 = (EditText)findViewById(R.id.editText17); 
    editText18 = (EditText)findViewById(R.id.editText18); 
    editText19 = (EditText)findViewById(R.id.editText19); 
    editText20 = (EditText)findViewById(R.id.editText20); 
    editText21 = (EditText)findViewById(R.id.editText21); 

    spinner1 = (Spinner) findViewById(R.id.spinner1); 

    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String> (this,android.R.layout.simple_spinner_item,numeroExamenes); 

    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner1.setAdapter(dataAdapter); 

    addListenerOnSpinnerItemSelection(); 
} 

public void addListenerOnSpinnerItemSelection(){ 

    spinner1.setOnItemSelectedListener(new OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, 

       int position, long id) { 
       Toast.makeText(MainActivity.this, 
         "On Button Click : " + 
         "\n" + String.valueOf(spinner1.getSelectedItem()) , 
         Toast.LENGTH_LONG).show(); 
      } 
     @Override 
     public void onNothingSelected(AdapterView<?> parent) { 
      // TODO Auto-generated method stub 
     } 
    });} 

這是我的XML代碼

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:weightSum="3" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="2" 
     android:text="@string/materias" 
     android:textSize="20sp" /> 

    <EditText 
     android:id="@+id/editText1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="2" 
     android:ems="10" 
     android:inputType="text" > 

    </EditText> 

</LinearLayout> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:weightSum="3" > 
</LinearLayout> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:weightSum="3" > 

    <TextView 
     android:id="@+id/textView3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="@string/creditos" 
     android:textSize="20sp" /> 

    <EditText 
     android:id="@+id/editText2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:ems="10" 
     android:inputType="number" /> 

</LinearLayout> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:weightSum="3" 
    android:layout_marginBottom="30sp"> 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Cantidad de Examenes" 
     android:textSize="20sp" /> 

    <Spinner 
     android:id="@+id/spinner1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" /> 

</LinearLayout> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

     <TableRow 
      android:id="@+id/tableRow1" 
      android:layout_width="fill_parent" 
      android:layout_height="match_parent"> 

      <TextView 
       android:id="@+id/textView4" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:textSize="20sp" 
       android:text="Examen" /> 
      <TextView 
       android:id="@+id/textView5" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:textSize="20sp" 
       android:text="Nota" /> 
      <TextView 
       android:id="@+id/textView6" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textSize="20sp" 
       android:gravity="center" 
       android:layout_weight="2" 
       android:text="%" /> 

     </TableRow> 
</LinearLayout> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

     <TableRow 
      android:id="@+id/tableRow2" 
      android:layout_width="fill_parent" 
      android:layout_height="match_parent"> 

      <EditText 
       android:id="@+id/editText4" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:ems="10" 
       android:inputType="text"/> 

      <EditText 
       android:id="@+id/editText5" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:ems="10" 
       android:inputType="numberDecimal"/> 

      <EditText 
       android:id="@+id/editText6" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:ems="10" 
       android:inputType="number"/> 

     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow3" 
      android:layout_width="fill_parent" 
      android:layout_height="match_parent"> 

      <EditText 
       android:id="@+id/editText7" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:ems="10" 
       android:inputType="text"/> 

      <EditText 
       android:id="@+id/editText8" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:ems="10" 
       android:inputType="numberDecimal"/> 

      <EditText 
       android:id="@+id/editText9" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:ems="10" 
       android:inputType="number"/> 

     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow4" 
      android:layout_width="fill_parent" 
      android:layout_height="match_parent"> 

      <EditText 
       android:id="@+id/editText10" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:ems="10" 
       android:inputType="text"/> 

      <EditText 
       android:id="@+id/editText11" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:ems="10" 
       android:inputType="numberDecimal"/> 

      <EditText 
       android:id="@+id/editText12" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:ems="10" 
       android:inputType="number"/> 

     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow5" 
      android:layout_width="fill_parent" 
      android:layout_height="match_parent"> 

      <EditText 
       android:id="@+id/editText13" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:ems="10" 
       android:inputType="text"/> 

      <EditText 
       android:id="@+id/editText14" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:ems="10" 
       android:inputType="numberDecimal"/> 

      <EditText 
       android:id="@+id/editText15" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:ems="10" 
       android:inputType="number"/> 

     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow6" 
      android:layout_width="fill_parent" 
      android:layout_height="match_parent"> 

      <EditText 
       android:id="@+id/editText16" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:ems="10" 
       android:inputType="text"/> 

      <EditText 
       android:id="@+id/editText17" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:ems="10" 
       android:inputType="numberDecimal"/> 

      <EditText 
       android:id="@+id/editText18" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:ems="10" 
       android:inputType="number"/> 

     </TableRow> 

     <TableRow 
      android:id="@+id/tableRow7" 
      android:layout_width="fill_parent" 
      android:layout_height="match_parent"> 

      <EditText 
       android:id="@+id/editText19" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:ems="10" 
       android:inputType="text"/> 

      <EditText 
       android:id="@+id/editText20" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:ems="10" 
       android:inputType="numberDecimal"/> 

      <EditText 
       android:id="@+id/editText21" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:ems="10" 
       android:inputType="number" /> 

     </TableRow> 

</LinearLayout> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:weightSum="3" > 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="@string/guardar" /> 

    <Button 
     android:id="@+id/button3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="2" 
     android:onClick="agregarNotas" 
     android:text="@string/materias" /> 

    <Button 
     android:id="@+id/button2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="3" 
     android:text="@string/nueva" /> 
</LinearLayout> 

logcat的錯誤行78:spinner1 .setadapter(適配器);

enter code here09-03 11:25:46.344: E/AndroidRuntime(7841): Caused by: java.lang.NullPointerException 
09-03 11:25:46.344: E/AndroidRuntime(7841): at com.jonathanar.promapp.MainActivity.onCreate(MainActivity.java:78) 

任何建議表示讚賞

+0

是post xml名稱'activity_main'。如果不是,這些視圖可能屬於片段佈局。 – Raghunandan 2014-09-03 17:00:03

回答

0

你正試圖從Activity檢索次數,但他們在Fragment

getActivity().findViewById(R.id.yourId);是什麼你應該做什麼,只要你使用findViewById()方法。

0

NullPointerException不是用於實例化適配器的問題,而是用獲取Spinner的方式。

如果微調器存在於片段中,則需要指定其上下文。

只是把findViewById()真的this.findViewById(),這是你的活動。換句話說,您告訴方法在活動的內容視圖中查找視圖。

如果微調是在片段的內容來看,您需要改用

fragment.getActivity().findViewById(R.id.???); 

這樣findViewById()知道找到自己的微調片段中的上下文。

希望這會有所幫助!